diff options
Diffstat (limited to 'e2fsprogs/ext2fs/finddev.c')
-rw-r--r-- | e2fsprogs/ext2fs/finddev.c | 16 |
1 files changed, 3 insertions, 13 deletions
diff --git a/e2fsprogs/ext2fs/finddev.c b/e2fsprogs/ext2fs/finddev.c index fa2cadde4..c459c0833 100644 --- a/e2fsprogs/ext2fs/finddev.c +++ b/e2fsprogs/ext2fs/finddev.c | |||
@@ -46,14 +46,8 @@ static void add_to_dirlist(const char *name, struct dir_list **list) | |||
46 | { | 46 | { |
47 | struct dir_list *dp; | 47 | struct dir_list *dp; |
48 | 48 | ||
49 | dp = malloc(sizeof(struct dir_list)); | 49 | dp = xmalloc(sizeof(struct dir_list)); |
50 | if (!dp) | 50 | dp->name = xmalloc(strlen(name)+1); |
51 | return; | ||
52 | dp->name = malloc(strlen(name)+1); | ||
53 | if (!dp->name) { | ||
54 | free(dp); | ||
55 | return; | ||
56 | } | ||
57 | strcpy(dp->name, name); | 51 | strcpy(dp->name, name); |
58 | dp->next = *list; | 52 | dp->next = *list; |
59 | *list = dp; | 53 | *list = dp; |
@@ -100,11 +94,7 @@ static int scan_dir(char *dir_name, dev_t device, struct dir_list **list, | |||
100 | if (S_ISDIR(st.st_mode)) | 94 | if (S_ISDIR(st.st_mode)) |
101 | add_to_dirlist(path, list); | 95 | add_to_dirlist(path, list); |
102 | if (S_ISBLK(st.st_mode) && st.st_rdev == device) { | 96 | if (S_ISBLK(st.st_mode) && st.st_rdev == device) { |
103 | cp = malloc(strlen(path)+1); | 97 | cp = xmalloc(strlen(path)+1); |
104 | if (!cp) { | ||
105 | closedir(dir); | ||
106 | return ENOMEM; | ||
107 | } | ||
108 | strcpy(cp, path); | 98 | strcpy(cp, path); |
109 | *ret_path = cp; | 99 | *ret_path = cp; |
110 | goto success; | 100 | goto success; |