UBSAN: shift-out-of-bounds in diNewExt

Status: upstream: reported C repro on 2022/10/04 08:49
Subsystems: jfs (incorrect?)
First crash: 173d, last: 112d

Cause bisection: failed (error log, bisect log)

Fix bisection: the fix commit could be any of (bisect log):
  1ea66d71b176 jfs: remove unused declarations for jfs
  dee874452409 jfs: remove redundant assignments to ipaimap and ipaimap2
  b0a35efa0ebc fs/jfs/jfs_xattr.h: Fix spelling typo in comment
  ebe060369f8d jfs: Fix fortify moan in symlink
  25e70c6162f2 fs: jfs: fix shift-out-of-bounds in dbDiscardAG
  4ef3405e82d2 MAINTAINERS: git://github -> for kleikamp
  73c6da327ff1 fs/jfs: replace ternary operator with min_t()
  d0e482c45c50 jfs: Fix a typo in function jfs_umount
  898f70669568 fs: jfs: fix shift-out-of-bounds in dbAllocAG
  a60dca73a1a8 jfs: makes diUnmount/diMount in jfs_mount_rw atomic
  56c003e4db4a Merge tag 'jfs-6.2' of
Last patch testing requests:
Created Duration User Patch Repo Result
2023/03/13 20:32 1m retest repro upstream error
2022/10/04 10:45 17m patch git:// -- error

Sample crash report:
loop0: detected capacity change from 0 to 32768
UBSAN: shift-out-of-bounds in fs/jfs/jfs_imap.c:2177:9
shift exponent 3328 is too large for 64-bit type '__u64' (aka 'unsigned long long')
CPU: 0 PID: 3614 Comm: syz-executor410 Not tainted 6.0.0-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/22/2022
Call Trace:
 __dump_stack lib/dump_stack.c:88 [inline]
 dump_stack_lvl+0x1b1/0x28e lib/dump_stack.c:106
 ubsan_epilogue lib/ubsan.c:151 [inline]
 __ubsan_handle_shift_out_of_bounds+0x33d/0x3b0 lib/ubsan.c:322
 diNewExt+0x3788/0x3e00 fs/jfs/jfs_imap.c:2177
 diAllocExt fs/jfs/jfs_imap.c:1945 [inline]
 diAllocAG+0xc6a/0x1f80 fs/jfs/jfs_imap.c:1662
 diAlloc+0x3dd/0x1700 fs/jfs/jfs_imap.c:1583
 ialloc+0x8c/0xa80 fs/jfs/jfs_inode.c:56
 jfs_mkdir+0x141/0xb00 fs/jfs/namei.c:225
 vfs_mkdir+0x3b3/0x590 fs/namei.c:4013
 do_mkdirat+0x279/0x550 fs/namei.c:4038
 __do_sys_mkdirat fs/namei.c:4053 [inline]
 __se_sys_mkdirat fs/namei.c:4051 [inline]
 __x64_sys_mkdirat+0x85/0x90 fs/namei.c:4051
 do_syscall_x64 arch/x86/entry/common.c:50 [inline]
 do_syscall_64+0x3d/0xb0 arch/x86/entry/common.c:80
RIP: 0033:0x7f6d98413009
Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 c0 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007fff6e1be1f8 EFLAGS: 00000246 ORIG_RAX: 0000000000000102
RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f6d98413009
RDX: 0000000000000000 RSI: 0000000020000540 RDI: 0000000000000003
RBP: 00007f6d983d27d0 R08: 0000000000000000 R09: 00007f6d983d27d0
R10: 000000000000002e R11: 0000000000000246 R12: 00000000f8008000
R13: 0000000000000000 R14: 00080000000000f8 R15: 0000000000000000

Crashes (4):
Manager Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets Title
ci2-upstream-fs 2022/10/03 16:57 upstream 4fe89d07dcc2 feb56351 .config strace log report syz C [disk image] [vmlinux] UBSAN: shift-out-of-bounds in diNewExt
ci-upstream-kasan-gce-root 2022/10/09 12:56 upstream a6afa4199d3d aea5da89 .config strace log report syz C [disk image] [vmlinux] [mounted in repro] UBSAN: shift-out-of-bounds in diNewExt
ci2-upstream-fs 2022/12/03 19:44 upstream 97ee9d1c1696 e080de16 .config console log report info [disk image] [vmlinux] [kernel image] UBSAN: shift-out-of-bounds in diNewExt
ci2-upstream-fs 2022/10/15 07:00 upstream 493ffd6605b2 67cb024c .config console log report info [disk image] [vmlinux] UBSAN: shift-out-of-bounds in diNewExt
* Struck through repros no longer work on HEAD.