Hello,
syzbot found 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=14d2eb56280000
kernel config:
https://syzkaller.appspot.com/x/.config?x=db3750b003ff805e
dashboard link:
https://syzkaller.appspot.com/bug?extid=b9a11951980cf86e1899
compiler: Debian clang version 15.0.7, GNU ld (GNU Binutils for Debian) 2.35.2
userspace arch: arm64
syz repro:
https://syzkaller.appspot.com/x/repro.syz?x=17a27d7c280000
C reproducer:
https://syzkaller.appspot.com/x/repro.c?x=16700e16280000
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/b1da1a2057fb/mount_0.gz
IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by:
syzbot+b9a119...@syzkaller.appspotmail.com
loop0: detected capacity change from 0 to 1024
hfsplus: new node 0 already hashed?
------------[ cut here ]------------
WARNING: CPU: 1 PID: 3968 at fs/hfsplus/bnode.c:584 hfsplus_bnode_create+0x428/0x4ec fs/hfsplus/bnode.c:583
Modules linked in:
CPU: 1 PID: 3968 Comm: syz-executor870 Not tainted 5.15.111-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 04/14/2023
pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
pc : hfsplus_bnode_create+0x428/0x4ec fs/hfsplus/bnode.c:583
lr : hfsplus_bnode_create+0x428/0x4ec fs/hfsplus/bnode.c:583
sp : ffff80001cdb6c70
x29: ffff80001cdb6c80 x28: ffff0000ddcd60f8 x27: ffff0000ddcd6000
x26: 00000000000000f8 x25: dfff800000000000 x24: 0000000000000000
x23: 0000000000000000 x22: ffff0000c9a440e0 x21: ffff0000c9a44000
x20: 0000000000000000 x19: ffff0000c0f7fc00 x18: 0000000000000001
x17: ff808000083359dc x16: ffff800011948074 x15: ffff8000083359dc
x14: 00000000ffffffff x13: ffffffffffffffff x12: 0000000000000000
x11: ff8080000832c484 x10: 0000000000000000 x9 : 825ef17445ee0200
x8 : 825ef17445ee0200 x7 : 0000000000000001 x6 : 0000000000000001
x5 : ffff80001cdb63d8 x4 : ffff8000149afce0 x3 : ffff80000a9525e0
x2 : ffff0001b481ed10 x1 : 0000000100000000 x0 : 0000000000000023
Call trace:
hfsplus_bnode_create+0x428/0x4ec fs/hfsplus/bnode.c:583
hfsplus_bmap_alloc+0x5a4/0x698 fs/hfsplus/btree.c:414
hfs_btree_inc_height+0xf8/0xa60 fs/hfsplus/brec.c:475
hfsplus_brec_insert+0x11c/0xaa0 fs/hfsplus/brec.c:75
__hfsplus_ext_write_extent+0x288/0x4bc fs/hfsplus/extents.c:107
__hfsplus_ext_cache_extent+0x84/0xa84 fs/hfsplus/extents.c:186
hfsplus_ext_read_extent fs/hfsplus/extents.c:218 [inline]
hfsplus_file_extend+0x390/0x14e0 fs/hfsplus/extents.c:461
hfsplus_get_block+0x398/0x1194 fs/hfsplus/extents.c:245
__block_write_begin_int+0x3ec/0x1608 fs/buffer.c:2012
__block_write_begin fs/buffer.c:2062 [inline]
block_write_begin fs/buffer.c:2122 [inline]
cont_write_begin+0x538/0x710 fs/buffer.c:2471
hfsplus_write_begin+0xa8/0xf8 fs/hfsplus/inode.c:53
generic_perform_write+0x24c/0x520 mm/filemap.c:3776
__generic_file_write_iter+0x230/0x454 mm/filemap.c:3903
generic_file_write_iter+0xb4/0x1b8 mm/filemap.c:3935
call_write_iter include/linux/fs.h:2103 [inline]
new_sync_write fs/read_write.c:507 [inline]
vfs_write+0x87c/0xb3c fs/read_write.c:594
ksys_write+0x15c/0x26c fs/read_write.c:647
__do_sys_write fs/read_write.c:659 [inline]
__se_sys_write fs/read_write.c:656 [inline]
__arm64_sys_write+0x7c/0x90 fs/read_write.c:656
__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: 18202
hardirqs last enabled at (18201): [<ffff80000832a61c>] __up_console_sem+0xb4/0x100 kernel/printk/printk.c:257
hardirqs last disabled at (18202): [<ffff800011943708>] el1_dbg+0x24/0x80 arch/arm64/kernel/entry-common.c:387
softirqs last enabled at (17038): [<ffff800008020ccc>] softirq_handle_end kernel/softirq.c:401 [inline]
softirqs last enabled at (17038): [<ffff800008020ccc>] __do_softirq+0xb5c/0xe20 kernel/softirq.c:587
softirqs last disabled at (16663): [<ffff8000081b573c>] do_softirq_own_stack include/asm-generic/softirq_stack.h:10 [inline]
softirqs last disabled at (16663): [<ffff8000081b573c>] invoke_softirq kernel/softirq.c:439 [inline]
softirqs last disabled at (16663): [<ffff8000081b573c>] __irq_exit_rcu+0x28c/0x534 kernel/softirq.c:636
---[ end trace 67bd52ab03f1bb8b ]---
------------[ cut here ]------------
kernel BUG at fs/hfsplus/bnode.c:631!
Internal error: Oops - BUG: 0 [#1] PREEMPT SMP
Modules linked in:
CPU: 1 PID: 3968 Comm: syz-executor870 Tainted: G W 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_bnode_put+0x588/0x594 fs/hfsplus/bnode.c:631
lr : hfsplus_bnode_put+0x588/0x594 fs/hfsplus/bnode.c:631
sp : ffff80001cdb6d80
x29: ffff80001cdb6d80 x28: dfff800000000000 x27: ffff7000039b6dc8
x26: 1fffe00019348803 x25: ffff0000c9a44000 x24: 1fffe000181eff80
x23: dfff800000000000 x22: ffff0000c0f7fc00 x21: ffff0000c0f7fc80
x20: 0000000000000000 x19: ffff0000c0f7fc00 x18: 0000000000000001
x17: ff808000083359dc x16: ffff800011948204 x15: ffff8000083359dc
x14: 1ffff0000291a06a x13: ffffffffffffffff x12: 0000000000000000
x11: ff80800008fafdd0 x10: 0000000000000000 x9 : ffff800008fafdd0
x8 : ffff0000d8e99b40 x7 : ffff800008914708 x6 : 0000000000000000
x5 : 0000000000000000 x4 : 0000000000000000 x3 : ffff800008faf8a4
x2 : 0000000000000000 x1 : 0000000000000000 x0 : 0000000000000000
Call trace:
hfsplus_bnode_put+0x588/0x594 fs/hfsplus/bnode.c:631
hfs_btree_inc_height+0x4fc/0xa60 fs/hfsplus/brec.c:530
hfsplus_brec_insert+0x11c/0xaa0 fs/hfsplus/brec.c:75
__hfsplus_ext_write_extent+0x288/0x4bc fs/hfsplus/extents.c:107
__hfsplus_ext_cache_extent+0x84/0xa84 fs/hfsplus/extents.c:186
hfsplus_ext_read_extent fs/hfsplus/extents.c:218 [inline]
hfsplus_file_extend+0x390/0x14e0 fs/hfsplus/extents.c:461
hfsplus_get_block+0x398/0x1194 fs/hfsplus/extents.c:245
__block_write_begin_int+0x3ec/0x1608 fs/buffer.c:2012
__block_write_begin fs/buffer.c:2062 [inline]
block_write_begin fs/buffer.c:2122 [inline]
cont_write_begin+0x538/0x710 fs/buffer.c:2471
hfsplus_write_begin+0xa8/0xf8 fs/hfsplus/inode.c:53
generic_perform_write+0x24c/0x520 mm/filemap.c:3776
__generic_file_write_iter+0x230/0x454 mm/filemap.c:3903
generic_file_write_iter+0xb4/0x1b8 mm/filemap.c:3935
call_write_iter include/linux/fs.h:2103 [inline]
new_sync_write fs/read_write.c:507 [inline]
vfs_write+0x87c/0xb3c fs/read_write.c:594
ksys_write+0x15c/0x26c fs/read_write.c:647
__do_sys_write fs/read_write.c:659 [inline]
__se_sys_write fs/read_write.c:656 [inline]
__arm64_sys_write+0x7c/0x90 fs/read_write.c:656
__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
Code: aa1403e0 97e45cf7 17ffff77 97d44af2 (d4210000)
---[ end trace 67bd52ab03f1bb8c ]---
If the bug is already fixed, let syzbot know by replying with:
#syz fix: exact-commit-title
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.
If you want to change bug's subsystems, reply with:
#syz set subsystems: new-subsystem
(See the list of subsystem names on the web dashboard)
If the bug is a duplicate of another bug, reply with:
#syz dup: exact-subject-of-another-report
If you want to undo deduplication, reply with:
#syz undup