From: Qu Wenruo Date: Tue, 2 May 2017 03:17:25 +0000 (+0800) Subject: btrfs-progs: check: Fix memory leak in check_chunks_and_extents X-Git-Tag: upstream/4.16.1~663 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f80b1f1db66216aeca06be03d0269b2e2946974b;p=platform%2Fupstream%2Fbtrfs-progs.git 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 Signed-off-by: David Sterba --- diff --git a/cmds-check.c b/cmds-check.c index 17b7efb..897b158 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);