]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
jfs: xattr: check invalid xattr size more strictly
authorArtem Sadovnikov <ancowi69@gmail.com>
Sat, 5 Oct 2024 10:06:57 +0000 (10:06 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 5 Dec 2024 09:59:38 +0000 (10:59 +0100)
commit4ea25fa8747fb8b1e5a11d87b852023ecf7ae420
tree9ac5f888b902cef315f78309ba77c0cdcfe3ee11
parentd714aa0399cfc692170801bce09fc11c66552f29
jfs: xattr: check invalid xattr size more strictly

commit d9f9d96136cba8fedd647d2c024342ce090133c2 upstream.

Commit 7c55b78818cf ("jfs: xattr: fix buffer overflow for invalid xattr")
also addresses this issue but it only fixes it for positive values, while
ea_size is an integer type and can take negative values, e.g. in case of
a corrupted filesystem. This still breaks validation and would overflow
because of implicit conversion from int to size_t in print_hex_dump().

Fix this issue by clamping the ea_size value instead.

Found by Linux Verification Center (linuxtesting.org) with Syzkaller.

Cc: stable@vger.kernel.org
Signed-off-by: Artem Sadovnikov <ancowi69@gmail.com>
Signed-off-by: Dave Kleikamp <dave.kleikamp@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/jfs/xattr.c