jfs: xattr: check invalid xattr size more strictly
authorArtem Sadovnikov <ancowi69@gmail.com>
Sat, 5 Oct 2024 10:06:57 +0000 (10:06 +0000)
committerDave Kleikamp <dave.kleikamp@oracle.com>
Tue, 29 Oct 2024 22:17:43 +0000 (17:17 -0500)
commitd9f9d96136cba8fedd647d2c024342ce090133c2
tree2693d52666d610492967eb388ef744579ad5c524
parent839f102efb168f02dfdd46717b7c6dddb26b015e
jfs: xattr: check invalid xattr size more strictly

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>
fs/jfs/xattr.c