btrfs-progs: Fix 2 extent buffer leak in btrfs-debug-tree

There are 2 known extent buffer leaks:
1) With -t option.
-t option will skip other tree roots, but it will read the root node
first and then skip it.
Where it forgets to free the tree block it read.

2) with -b option.
It forgets to free the tree block it read.

Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.cz>
This commit is contained in:
Qu Wenruo 2015-02-11 09:57:17 +08:00 committed by David Sterba
parent a1231346d6
commit d09504edb1

View File

@ -221,6 +221,7 @@ int main(int ac, char **av)
goto close_root;
}
btrfs_print_tree(root, leaf, 0);
free_extent_buffer(leaf);
goto close_root;
}
@ -284,8 +285,10 @@ again:
0);
if (!extent_buffer_uptodate(buf))
goto next;
if (tree_id && found_key.objectid != tree_id)
if (tree_id && found_key.objectid != tree_id) {
free_extent_buffer(buf);
goto next;
}
switch(found_key.objectid) {
case BTRFS_ROOT_TREE_OBJECTID: