Commit 01a9cb19 authored by Josef Bacik's avatar Josef Bacik Committed by Yifan Qiao
Browse files

btrfs: don't BUG_ON on ENOMEM from btrfs_lookup_extent_info() in walk_down_proc()

mainline inclusion
from mainline-v6.11-rc1
commit a580fb2c3479d993556e1c31b237c9e5be4944a3
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IAU9LZ
CVE: CVE-2024-46841

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a580fb2c3479d993556e1c31b237c9e5be4944a3



--------------------------------

We handle errors here properly, ENOMEM isn't fatal, return the error.

Signed-off-by: default avatarJosef Bacik <josef@toxicpanda.com>
Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
Conflicts:
	fs/btrfs/extent-tree.c
[Context difference.]
Signed-off-by: default avatarYifan Qiao <qiaoyifan4@huawei.com>
parent 77f73ef1
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -5162,7 +5162,6 @@ static noinline int walk_down_proc(struct btrfs_trans_handle *trans,
					       eb->start, level, 1,
					       &wc->refs[level],
					       &wc->flags[level]);
		BUG_ON(ret == -ENOMEM);
		if (ret)
			return ret;
		BUG_ON(wc->refs[level] == 0);