Btrfs-progs: fi usage: free memory if realloc fails
authorRakesh Pandit <rakesh@tuxera.com>
Sat, 19 Apr 2014 11:12:03 +0000 (14:12 +0300)
committerDavid Sterba <dsterba@suse.cz>
Thu, 4 Dec 2014 15:48:10 +0000 (16:48 +0100)
Lets not assign *info_ptr to 0 before calling free on it and lose
track of already allocated memory if realloc fails in
add_info_to_list. Lets call free first.

Signed-off-by: Rakesh Pandit <rakesh@tuxera.com>
Signed-off-by: David Sterba <dsterba@suse.cz>
cmds-fi-disk_usage.c

index 736294e..9fd59bc 100644 (file)
@@ -104,6 +104,7 @@ static int add_info_to_list(struct chunk_info **info_ptr,
                        struct chunk_info *res = realloc(*info_ptr, size);
 
                        if (!res) {
+                               free(*info_ptr);
                                fprintf(stderr, "ERROR: not enough memory\n");
                                return -1;
                        }
@@ -224,7 +225,6 @@ static int load_chunk_info(int fd,
 
                        if (add_info_to_list(info_ptr, info_count, item)) {
                                *info_ptr = 0;
-                               free(*info_ptr);
                                return -100;
                        }