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 <[email protected]>
---
 cmds-fi-disk_usage.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/cmds-fi-disk_usage.c b/cmds-fi-disk_usage.c
index 2bd591d..cd71c8d 100644
--- a/cmds-fi-disk_usage.c
+++ b/cmds-fi-disk_usage.c
@@ -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;
                        }
 
-- 
1.8.5.3

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to