]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ext4: fix iloc.bh leak in ext4_xattr_inode_update_ref
authorYang Erkun <yangerkun@huawei.com>
Sat, 13 Dec 2025 05:57:06 +0000 (13:57 +0800)
committerTheodore Ts'o <tytso@mit.edu>
Sun, 18 Jan 2026 16:23:10 +0000 (11:23 -0500)
The error branch for ext4_xattr_inode_update_ref forget to release the
refcount for iloc.bh. Find this when review code.

Fixes: 57295e835408 ("ext4: guard against EA inode refcount underflow in xattr update")
Signed-off-by: Yang Erkun <yangerkun@huawei.com>
Reviewed-by: Baokun Li <libaokun1@huawei.com>
Reviewed-by: Zhang Yi <yi.zhang@huawei.com>
Link: https://patch.msgid.link/20251213055706.3417529-1-yangerkun@huawei.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Cc: stable@kernel.org
fs/ext4/xattr.c

index 2e02efbddaaccae6a39b7e78cb256a6f07d64415..4ed8ddf2a60b3114a7c47456141de647332c1360 100644 (file)
@@ -1037,6 +1037,7 @@ static int ext4_xattr_inode_update_ref(handle_t *handle, struct inode *ea_inode,
                ext4_error_inode(ea_inode, __func__, __LINE__, 0,
                        "EA inode %lu ref wraparound: ref_count=%lld ref_change=%d",
                        ea_inode->i_ino, ref_count, ref_change);
+               brelse(iloc.bh);
                ret = -EFSCORRUPTED;
                goto out;
        }