]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
btrfs: fix a potential path leak in print_data_reloc_error()
authorQu Wenruo <wqu@suse.com>
Tue, 25 Nov 2025 08:19:56 +0000 (18:49 +1030)
committerDavid Sterba <dsterba@suse.com>
Tue, 9 Dec 2025 03:35:28 +0000 (04:35 +0100)
commit313ef70a9f0f637a09d9ef45222f5bdcf30a354b
treeb96e3d41920240af52531332fdc6774786a9d3e6
parent428e1b114c1ae94c44f0ae3a15dafcfae4d8a0b4
btrfs: fix a potential path leak in print_data_reloc_error()

Inside print_data_reloc_error(), if extent_from_logical() failed we
return immediately.

However there are the following cases where extent_from_logical() can
return error but still holds a path:

- btrfs_search_slot() returned 0

- No backref item found in extent tree

- No flags_ret provided
  This is not possible in this call site though.

So for the above two cases, we can return without releasing the path,
causing extent buffer leaks.

Fixes: b9a9a85059cd ("btrfs: output affected files when relocation fails")
Signed-off-by: Qu Wenruo <wqu@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/inode.c