[syzbot] [xfs?] KASAN: null-ptr-deref Write in xfs_filestream_select_ag

From: syzbot
Date: Wed Mar 22 2023 - 04:34:58 EST


Hello,

syzbot found the following issue on:

HEAD commit: 17214b70a159 Merge tag 'fsverity-for-linus' of git://git.k..
git tree: upstream
console+strace: https://syzkaller.appspot.com/x/log.txt?x=17938109c80000
kernel config: https://syzkaller.appspot.com/x/.config?x=d40f6d44826f6cf7
dashboard link: https://syzkaller.appspot.com/bug?extid=87466712bb342796810a
compiler: Debian clang version 15.0.7, GNU ld (GNU Binutils for Debian) 2.35.2
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=1492946ac80000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=12e45ad6c80000

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/d166fda7fbbd/disk-17214b70.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/0c16461022b9/vmlinux-17214b70.xz
kernel image: https://storage.googleapis.com/syzbot-assets/53e9e40da8bb/bzImage-17214b70.xz
mounted in repro: https://storage.googleapis.com/syzbot-assets/52081e4a3707/mount_0.gz

The issue was bisected to:

commit 3e43877a9dac13771ac722462c87bea0bdc50759
Author: Dave Chinner <dchinner@xxxxxxxxxx>
Date: Sun Feb 12 22:14:55 2023 +0000

xfs: remove xfs_filestream_select_ag() longest extent check

bisection log: https://syzkaller.appspot.com/x/bisect.txt?x=13cee69ac80000
final oops: https://syzkaller.appspot.com/x/report.txt?x=102ee69ac80000
console output: https://syzkaller.appspot.com/x/log.txt?x=17cee69ac80000

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+87466712bb342796810a@xxxxxxxxxxxxxxxxxxxxxxxxx
Fixes: 3e43877a9dac ("xfs: remove xfs_filestream_select_ag() longest extent check")

XFS (loop0): metadata I/O error in "xfs_read_agf+0x2c9/0x600" at daddr 0x1 len 1 error 117
XFS (loop0): page discard on page ffffea0001c573c0, inode 0x2a, pos 0.
==================================================================
BUG: KASAN: null-ptr-deref in instrument_atomic_read_write include/linux/instrumented.h:102 [inline]
BUG: KASAN: null-ptr-deref in atomic_inc include/linux/atomic/atomic-instrumented.h:190 [inline]
BUG: KASAN: null-ptr-deref in xfs_filestream_pick_ag fs/xfs/xfs_filestream.c:156 [inline]
BUG: KASAN: null-ptr-deref in xfs_filestream_create_association fs/xfs/xfs_filestream.c:301 [inline]
BUG: KASAN: null-ptr-deref in xfs_filestream_select_ag+0x14e5/0x1ca0 fs/xfs/xfs_filestream.c:372
Write of size 4 at addr 00000000000001c0 by task kworker/u4:3/47

CPU: 0 PID: 47 Comm: kworker/u4:3 Not tainted 6.3.0-rc3-syzkaller-00012-g17214b70a159 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 03/02/2023
Workqueue: writeback wb_workfn (flush-7:0)
Call Trace:
<TASK>
__dump_stack lib/dump_stack.c:88 [inline]
dump_stack_lvl+0x1e7/0x2d0 lib/dump_stack.c:106
print_report+0xe6/0x540 mm/kasan/report.c:433
kasan_report+0x176/0x1b0 mm/kasan/report.c:536
kasan_check_range+0x283/0x290 mm/kasan/generic.c:187
instrument_atomic_read_write include/linux/instrumented.h:102 [inline]
atomic_inc include/linux/atomic/atomic-instrumented.h:190 [inline]
xfs_filestream_pick_ag fs/xfs/xfs_filestream.c:156 [inline]
xfs_filestream_create_association fs/xfs/xfs_filestream.c:301 [inline]
xfs_filestream_select_ag+0x14e5/0x1ca0 fs/xfs/xfs_filestream.c:372
xfs_bmap_btalloc_filestreams fs/xfs/libxfs/xfs_bmap.c:3558 [inline]
xfs_bmap_btalloc+0xffa/0x28a0 fs/xfs/libxfs/xfs_bmap.c:3672
xfs_bmapi_allocate+0x647/0xf30
xfs_bmapi_convert_delalloc+0x98f/0x1310 fs/xfs/libxfs/xfs_bmap.c:4554
xfs_convert_blocks fs/xfs/xfs_aops.c:266 [inline]
xfs_map_blocks+0x780/0x1090 fs/xfs/xfs_aops.c:389
iomap_writepage_map fs/iomap/buffered-io.c:1641 [inline]
iomap_do_writepage+0x941/0x2ee0 fs/iomap/buffered-io.c:1803
write_cache_pages+0x89e/0x12c0 mm/page-writeback.c:2473
iomap_writepages+0x68/0x240 fs/iomap/buffered-io.c:1820
xfs_vm_writepages+0x139/0x1a0 fs/xfs/xfs_aops.c:513
do_writepages+0x3a6/0x670 mm/page-writeback.c:2551
__writeback_single_inode+0x155/0xfb0 fs/fs-writeback.c:1600
writeback_sb_inodes+0x8ef/0x11d0 fs/fs-writeback.c:1891
wb_writeback+0x458/0xc70 fs/fs-writeback.c:2065
wb_do_writeback fs/fs-writeback.c:2208 [inline]
wb_workfn+0x400/0xff0 fs/fs-writeback.c:2248
process_one_work+0x8a0/0x10e0 kernel/workqueue.c:2390
worker_thread+0xa63/0x1210 kernel/workqueue.c:2537
kthread+0x270/0x300 kernel/kthread.c:376
ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:308
</TASK>
==================================================================


---
This report is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzkaller@xxxxxxxxxxxxxxxx.

syzbot will keep track of this issue. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.
For information about bisection process see: https://goo.gl/tpsmEJ#bisection
syzbot can test patches for this issue, for details see:
https://goo.gl/tpsmEJ#testing-patches