aboutsummaryrefslogtreecommitdiff
path: root/e2fsprogs/ext2fs/finddev.c
diff options
context:
space:
mode:
Diffstat (limited to 'e2fsprogs/ext2fs/finddev.c')
-rw-r--r--e2fsprogs/ext2fs/finddev.c16
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;