mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-24 08:00:55 -04:00
btrfs: fix root leak if its reloc root is unexpected in merge_reloc_roots()
If we have an unexpected reloc_root for our root, we jump to the out label
but never drop the reference we obtained for root, resulting in a leak.
Add a missing btrfs_put_root() call.
Fixes: 24213fa46c ("btrfs: do proper error handling in merge_reloc_roots")
Reviewed-by: Qu Wenruo <wqu@suse.com>
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
committed by
David Sterba
parent
a2d8d5647e
commit
ce6050bafb
@@ -1912,6 +1912,7 @@ void merge_reloc_roots(struct reloc_control *rc)
|
||||
* corruption, e.g. bad reloc tree key offset.
|
||||
*/
|
||||
ret = -EINVAL;
|
||||
btrfs_put_root(root);
|
||||
goto out;
|
||||
}
|
||||
ret = merge_reloc_root(rc, root);
|
||||
|
||||
Reference in New Issue
Block a user