------------[ cut here ]------------ UBSAN: array-index-out-of-bounds in fs/jfs/jfs_dtree.c:784:21 index -1 is out of range for type 'struct dtslot[128]' CPU: 1 UID: 0 PID: 8475 Comm: syz.3.450 Not tainted syzkaller #0 PREEMPT Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/03/2025 Call trace: show_stack+0x2c/0x3c arch/arm64/kernel/stacktrace.c:499 (C) __dump_stack+0x30/0x40 lib/dump_stack.c:94 dump_stack_lvl+0xd8/0x12c lib/dump_stack.c:120 dump_stack+0x1c/0x28 lib/dump_stack.c:129 ubsan_epilogue+0x14/0x48 lib/ubsan.c:233 __ubsan_handle_out_of_bounds+0xd0/0xfc lib/ubsan.c:455 dtSearch+0x1664/0x1d00 fs/jfs/jfs_dtree.c:784 jfs_lookup+0x13c/0x32c fs/jfs/namei.c:1461 lookup_one_qstr_excl+0x10c/0x2fc fs/namei.c:1747 __start_dirop fs/namei.c:2866 [inline] start_dirop fs/namei.c:2875 [inline] filename_create+0x1b4/0x2d8 fs/namei.c:4879 do_symlinkat+0xc4/0x524 fs/namei.c:5534 __do_sys_symlinkat fs/namei.c:5562 [inline] __se_sys_symlinkat fs/namei.c:5559 [inline] __arm64_sys_symlinkat+0x9c/0xb4 fs/namei.c:5559 __invoke_syscall arch/arm64/kernel/syscall.c:35 [inline] invoke_syscall+0x98/0x254 arch/arm64/kernel/syscall.c:49 el0_svc_common+0xe8/0x23c arch/arm64/kernel/syscall.c:132 do_el0_svc+0x48/0x58 arch/arm64/kernel/syscall.c:151 el0_svc+0x5c/0x26c arch/arm64/kernel/entry-common.c:724 el0t_64_sync_handler+0x84/0x12c arch/arm64/kernel/entry-common.c:743 el0t_64_sync+0x198/0x19c arch/arm64/kernel/entry.S:596 ---[ end trace ]--- ================================================================== BUG: KASAN: use-after-free in addressPXD fs/jfs/jfs_types.h:80 [inline] BUG: KASAN: use-after-free in dtSearch+0x1680/0x1d00 fs/jfs/jfs_dtree.c:785 Read of size 4 at addr ffff0000da7fcfe0 by task syz.3.450/8475 CPU: 1 UID: 0 PID: 8475 Comm: syz.3.450 Not tainted syzkaller #0 PREEMPT Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/03/2025 Call trace: show_stack+0x2c/0x3c arch/arm64/kernel/stacktrace.c:499 (C) __dump_stack+0x30/0x40 lib/dump_stack.c:94 dump_stack_lvl+0xd8/0x12c lib/dump_stack.c:120 print_address_description+0xa8/0x238 mm/kasan/report.c:378 print_report+0x68/0x84 mm/kasan/report.c:482 kasan_report+0xb0/0x110 mm/kasan/report.c:595 __asan_report_load4_noabort+0x20/0x2c mm/kasan/report_generic.c:380 addressPXD fs/jfs/jfs_types.h:80 [inline] dtSearch+0x1680/0x1d00 fs/jfs/jfs_dtree.c:785 jfs_lookup+0x13c/0x32c fs/jfs/namei.c:1461 lookup_one_qstr_excl+0x10c/0x2fc fs/namei.c:1747 __start_dirop fs/namei.c:2866 [inline] start_dirop fs/namei.c:2875 [inline] filename_create+0x1b4/0x2d8 fs/namei.c:4879 do_symlinkat+0xc4/0x524 fs/namei.c:5534 __do_sys_symlinkat fs/namei.c:5562 [inline] __se_sys_symlinkat fs/namei.c:5559 [inline] __arm64_sys_symlinkat+0x9c/0xb4 fs/namei.c:5559 __invoke_syscall arch/arm64/kernel/syscall.c:35 [inline] invoke_syscall+0x98/0x254 arch/arm64/kernel/syscall.c:49 el0_svc_common+0xe8/0x23c arch/arm64/kernel/syscall.c:132 do_el0_svc+0x48/0x58 arch/arm64/kernel/syscall.c:151 el0_svc+0x5c/0x26c arch/arm64/kernel/entry-common.c:724 el0t_64_sync_handler+0x84/0x12c arch/arm64/kernel/entry-common.c:743 el0t_64_sync+0x198/0x19c arch/arm64/kernel/entry.S:596 The buggy address belongs to the physical page: page: refcount:0 mapcount:0 mapping:0000000000000000 index:0x20148 pfn:0x11a7fc flags: 0x5ffc00000000000(node=0|zone=2|lastcpupid=0x7ff) page_type: f0(buddy) raw: 05ffc00000000000 fffffdffc3a38b88 fffffdffc3a38cc8 0000000000000000 raw: 0000000000020148 0000000000000000 00000000f0000000 0000000000000000 page dumped because: kasan: bad access detected Memory state around the buggy address: ffff0000da7fce80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ffff0000da7fcf00: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff >ffff0000da7fcf80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ^ ffff0000da7fd000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ffff0000da7fd080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ================================================================== ERROR: (device loop3): dtSearch: stack overrun! btstack dump: bn = 0, index = 0 bn = 20, index = 0 bn = 0, index = 0 bn = 20, index = 0 bn = 0, index = 0 bn = 20, index = 0 bn = 0, index = 0 bn = 0, index = 0 jfs_lookup: dtSearch returned -5