summaryrefslogtreecommitdiff
path: root/cmds-check.c
diff options
context:
space:
mode:
authorQu Wenruo <quwenruo@cn.fujitsu.com>2017-05-02 11:17:25 +0800
committerDavid Sterba <dsterba@suse.com>2017-05-02 16:27:56 +0200
commitf80b1f1db66216aeca06be03d0269b2e2946974b (patch)
tree870968bd0117077542d41e88ea9df10e5d611d25 /cmds-check.c
parentb75c0720a41b95e0a2e37aa3bc5591454ded65b8 (diff)
btrfs-progs: check: Fix memory leak in check_chunks_and_extents
fsck/003-shift-offsets makes valgrinds complaining about memory leaks. ==5910== ==5910== HEAP SUMMARY: ==5910== in use at exit: 1,112 bytes in 11 blocks ==5910== total heap usage: 161 allocs, 150 frees, 164,800 bytes allocated ==5910== ==5910== 216 (72 direct, 144 indirect) bytes in 1 blocks are definitely lost in loss record 3 of 5 ==5910== at 0x4C2AF1F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==5910== by 0x4815A3: add_root_item_to_list (cmds-check.c:9683) ==5910== by 0x481CE2: check_chunks_and_extents (cmds-check.c:9886) ==5910== by 0x48888B: cmd_check (cmds-check.c:12977) ==5910== by 0x40A8C5: main (btrfs.c:246) ==5910== The check_chunks_and_extents() memory leaks are caused by not freeing added root items of normal_trees and dropping_trees. Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'cmds-check.c')
-rw-r--r--cmds-check.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/cmds-check.c b/cmds-check.c
index 17b7efbf..897b1587 100644
--- a/cmds-check.c
+++ b/cmds-check.c
@@ -9972,6 +9972,8 @@ out:
free_extent_cache_tree(&pending);
free_extent_cache_tree(&reada);
free_extent_cache_tree(&nodes);
+ free_root_item_list(&normal_trees);
+ free_root_item_list(&dropping_trees);
return ret;
loop:
free_corrupt_blocks_tree(root->fs_info->corrupt_blocks);