On Fri, Jan 12, 2024 at 07:50:07PM +0300, Mikhail Ukhin wrote:
Fuzzing of 5.10 stable branch shows NULL pointer dereference happens in lbmStartIO() on log->bdev pointer. The reason for bdev being NULL is the JFS_NOINTEGRITY flag is set on mount of this fs. When this flag is enabled, it results in the open_dummy_log function being called, which initializes a new dummy_log, but does not assign a value to bdev.
The error is fixed in 5.18 by commit 07888c665b405b1cd3577ddebfeb74f4717a84c4. Backport of this commit is too intrusive, so it is more reasonable to apply a small patch to fix this issue.
Found by Linux Verification Center (linuxtesting.org) with syzkaller.
Signed-off-by: Mikhail Ukhin mish.uxin2012@yandex.ru Signed-off-by: Mikhail Ivanov iwanov-23@bk.ru Signed-off-by: Pavel Koshutin koshutin.pavel@yandex.ru Signed-off-by: Artem Sadovnikov ancowi69@gmail.com
fs/jfs/jfs_logmgr.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
Who is using jfs in 5.10 and 5.15? Why not just mark the filesystem as BROKEN there instead? If you need to access your ancient filesystem image just use a newer kernel.
For filesystems that are not used in older kernels, work like this feels odd, especially for something just like a NULL dereference which doesn't do much, right?
thanks,
greg k-h