]> www.infradead.org Git - users/hch/misc.git/commit
squashfs: fix invalid pointer dereference in squashfs_cache_delete
authorZhiyu Zhang <zhiyuzhang999@gmail.com>
Thu, 6 Mar 2025 13:28:55 +0000 (21:28 +0800)
committerAndrew Morton <akpm@linux-foundation.org>
Mon, 17 Mar 2025 00:40:24 +0000 (17:40 -0700)
commitd7147a33570ce07965d76e4491c7c9d8d38006f4
tree157e65f3a148db2abbc9ac0b724c6f549b421d77
parent60cf233b585cdf1f3c5e52d1225606b86acd08b0
squashfs: fix invalid pointer dereference in squashfs_cache_delete

When mounting a squashfs fails, squashfs_cache_init() may return an error
pointer (e.g., -ENOMEM) instead of NULL.  However, squashfs_cache_delete()
only checks for a NULL cache, and attempts to dereference the invalid
pointer.  This leads to a kernel crash (BUG: unable to handle kernel
paging request in squashfs_cache_delete).

This patch fixes the issue by checking IS_ERR(cache) before accessing it.

Link: https://lkml.kernel.org/r/20250306132855.2030-1-zhiyuzhang999@gmail.com
Fixes: 49ff29240ebb ("squashfs: make squashfs_cache_init() return ERR_PTR(-ENOMEM)")
Signed-off-by: Zhiyu Zhang <zhiyuzhang999@gmail.com>
Reported-by: Zhiyu Zhang <zhiyuzhang999@gmail.com>
Closes: https://lore.kernel.org/linux-fsdevel/CALf2hKvaq8B4u5yfrE+BYt7aNguao99mfWxHngA+=o5hwzjdOg@mail.gmail.com/
Tested-by: Zhiyu Zhang <zhiyuzhang999@gmail.com>
Reviewed-by: Phillip Lougher <phillip@squashfs.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
fs/squashfs/cache.c