syzbot has found a reproducer for the following issue on:
HEAD commit: b0ece631f84a Linux 5.15.111
git tree: linux-5.15.y
console output:
https://syzkaller.appspot.com/x/log.txt?x=11d97cfa280000
kernel config:
https://syzkaller.appspot.com/x/.config?x=db3750b003ff805e
userspace arch: arm64
syz repro:
https://syzkaller.appspot.com/x/repro.syz?x=16cec252280000
C reproducer:
https://syzkaller.appspot.com/x/repro.c?x=14f7ad42280000
Downloadable assets:
disk image:
https://storage.googleapis.com/syzbot-assets/eded75b6c3f9/disk-b0ece631.raw.xz
vmlinux:
https://storage.googleapis.com/syzbot-assets/20e5ae802010/vmlinux-b0ece631.xz
kernel image:
https://storage.googleapis.com/syzbot-assets/05d665c869f3/Image-b0ece631.gz.xz
mounted in repro:
https://storage.googleapis.com/syzbot-assets/aad27a717aea/mount_0.gz
loop0: detected capacity change from 0 to 1024
------------[ cut here ]------------
WARNING: CPU: 0 PID: 3962 at fs/hfsplus/inode.c:532 hfsplus_cat_read_inode+0x864/0xc38 fs/hfsplus/inode.c:532
Modules linked in:
CPU: 0 PID: 3962 Comm: syz-executor100 Not tainted 5.15.111-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 04/14/2023
pstate: 80400005 (Nzcv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
pc : hfsplus_cat_read_inode+0x864/0xc38 fs/hfsplus/inode.c:532
lr : hfsplus_cat_read_inode+0x864/0xc38 fs/hfsplus/inode.c:532
sp : ffff80001af470e0
x29: ffff80001af473e0 x28: 1ffff000035e8e93 x27: 1ffff000035e8e95
x26: dfff800000000000 x25: ffff7000035e8e20 x24: 0000000000000002
x23: 000000000000004e x22: ffff80001af47498 x21: ffff80001af474ac
x20: ffff80001af47120 x19: ffff0000d7ef1cb0 x18: 0000000000000000
x17: ff80800008f98ff0 x16: 0000000000000000 x15: ffff800008f98ff0
x14: 0000000000000002 x13: ffffffffffffffff x12: 0000000000000000
x11: ff80800008f9974c x10: 0000000000000000 x9 : ffff800008f9974c
x8 : ffff0000d8b8d1c0 x7 : 0000000000000000 x6 : 0000000000000000
x5 : ffff80001af47062 x4 : ffff000178c93032 x3 : ffff800008fac1d0
x2 : 0000000000000002 x1 : 000000000000004e x0 : 00000000000000f8
Call trace:
hfsplus_cat_read_inode+0x864/0xc38 fs/hfsplus/inode.c:532
hfsplus_iget+0x4ac/0x570 fs/hfsplus/super.c:84
hfsplus_fill_super+0x9c4/0x167c fs/hfsplus/super.c:503
mount_bdev+0x26c/0x368 fs/super.c:1378
hfsplus_mount+0x44/0x58 fs/hfsplus/super.c:641
legacy_get_tree+0xd4/0x16c fs/fs_context.c:610
vfs_get_tree+0x90/0x274 fs/super.c:1508
do_new_mount+0x25c/0x8c8 fs/namespace.c:2994
path_mount+0x590/0x104c fs/namespace.c:3324
do_mount fs/namespace.c:3337 [inline]
__do_sys_mount fs/namespace.c:3545 [inline]
__se_sys_mount fs/namespace.c:3522 [inline]
__arm64_sys_mount+0x510/0x5e0 fs/namespace.c:3522
__invoke_syscall arch/arm64/kernel/syscall.c:38 [inline]
invoke_syscall+0x98/0x2b8 arch/arm64/kernel/syscall.c:52
el0_svc_common+0x138/0x258 arch/arm64/kernel/syscall.c:142
do_el0_svc+0x58/0x14c arch/arm64/kernel/syscall.c:181
el0_svc+0x7c/0x1f0 arch/arm64/kernel/entry-common.c:596
el0t_64_sync_handler+0x84/0xe4 arch/arm64/kernel/entry-common.c:614
el0t_64_sync+0x1a0/0x1a4 arch/arm64/kernel/entry.S:584
irq event stamp: 16478
hardirqs last enabled at (16477): [<ffff800011a1bbd8>] __raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:160 [inline]
hardirqs last enabled at (16477): [<ffff800011a1bbd8>] _raw_spin_unlock_irqrestore+0xac/0x158 kernel/locking/spinlock.c:194
hardirqs last disabled at (16478): [<ffff800011943708>] el1_dbg+0x24/0x80 arch/arm64/kernel/entry-common.c:387
softirqs last enabled at (15862): [<ffff8000080300b4>] local_bh_enable+0x10/0x34 include/linux/bottom_half.h:31
softirqs last disabled at (15860): [<ffff800008030080>] local_bh_disable+0x10/0x34 include/linux/bottom_half.h:18
---[ end trace 588c9a726d7046a2 ]---
---
If you want syzbot to run the reproducer, reply with:
#syz test: git://repo/address.git branch-or-commit-hash
If you attach or paste a git patch, syzbot will apply it before testing.