syzbot


divide error in flush_commit_list

Status: upstream: reported on 2023/02/18 21:03
Reported-by: syzbot+880ca92734edc2aec445@syzkaller.appspotmail.com
First crash: 641d, last: 641d
Similar bugs (3)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
linux-5.15 divide error in flush_commit_list (2) 5 38d 210d 0/3 upstream: reported on 2024/04/25 09:33
upstream divide error in flush_commit_list reiserfs 24 329d 704d 0/28 auto-obsoleted due to no activity on 2024/04/06 13:39
linux-5.15 divide error in flush_commit_list 1 568d 568d 0/3 auto-obsoleted due to no activity on 2023/08/23 09:10

Sample crash report:
audit: type=1800 audit(1676754162.751:2825): pid=31782 uid=0 auid=4294967295 ses=4294967295 subj==unconfined op=collect_data cause=failed(directio) comm="syz-executor.0" name="bus" dev="sda1" ino=14335 res=0
divide error: 0000 [#1] PREEMPT SMP KASAN
CPU: 1 PID: 28991 Comm: syz-executor.0 Not tainted 4.19.211-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/21/2023
RIP: 0010:flush_commit_list.isra.0+0xac1/0x1e20 fs/reiserfs/journal.c:1056
Code: c1 45 84 ca 0f 85 c2 0f 00 00 83 e2 07 40 38 d6 41 0f 9e c1 40 84 f6 0f 95 c2 41 84 d1 0f 85 a9 0f 00 00 41 8b 7c 24 14 31 d2 <48> f7 f7 48 8b 44 24 40 8d 34 11 48 c1 e8 03 80 3c 18 00 0f 85 6c
RSP: 0018:ffff88803bb9f610 EFLAGS: 00010246
RAX: 00000000000002b0 RBX: dffffc0000000000 RCX: 0000000000000000
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
RBP: ffff88809f120200 R08: 0000000000000001 R09: 0000000000000001
R10: 0000000000000001 R11: 0000000000000000 R12: ffff888014aff000
R13: 00000000000000c7 R14: 0000000000000100 R15: ffff888035ed43c0
FS:  00007fe270c9b700(0000) GS:ffff8880ba100000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000000000 CR3: 000000004783b000 CR4: 00000000003406e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
 flush_journal_list.isra.0+0x24e/0x1e60 fs/reiserfs/journal.c:1395
 flush_used_journal_lists.isra.0+0x330/0x580 fs/reiserfs/journal.c:1837
 do_journal_end+0x325a/0x4840 fs/reiserfs/journal.c:4357
 do_journal_begin_r+0x9f8/0x10b0 fs/reiserfs/journal.c:3125
 journal_begin+0x162/0x400 fs/reiserfs/journal.c:3265
 reiserfs_fill_super+0x1a81/0x2d80 fs/reiserfs/super.c:2117
REISERFS (device loop5): found reiserfs format "3.6" with non-standard journal
REISERFS (device loop5): using ordered data mode
 mount_bdev+0x2fc/0x3b0 fs/super.c:1158
 mount_fs+0xa3/0x310 fs/super.c:1261
reiserfs: using flush barriers
 vfs_kern_mount.part.0+0x68/0x470 fs/namespace.c:961
 vfs_kern_mount fs/namespace.c:951 [inline]
 do_new_mount fs/namespace.c:2492 [inline]
 do_mount+0x115c/0x2f50 fs/namespace.c:2822
REISERFS (device loop5): journal params: device loop5, size 512, journal first block 18, max trans len 256, max batch 225, max commit age 30, max trans age 30
REISERFS (device loop5): checking transaction log (loop5)
 ksys_mount+0xcf/0x130 fs/namespace.c:3038
 __do_sys_mount fs/namespace.c:3052 [inline]
 __se_sys_mount fs/namespace.c:3049 [inline]
 __x64_sys_mount+0xba/0x150 fs/namespace.c:3049
 do_syscall_64+0xf9/0x620 arch/x86/entry/common.c:293
REISERFS (device loop5): Using r5 hash to sort names
 entry_SYSCALL_64_after_hwframe+0x49/0xbe
REISERFS (device loop5): Created .reiserfs_priv - reserved for xattr storage.
RIP: 0033:0x7fe27272a62a
Code: 48 c7 c2 b8 ff ff ff f7 d8 64 89 02 b8 ff ff ff ff eb d2 e8 b8 04 00 00 0f 1f 84 00 00 00 00 00 49 89 ca b8 a5 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007fe270c9af88 EFLAGS: 00000202 ORIG_RAX: 00000000000000a5
RAX: ffffffffffffffda RBX: 0000000000001108 RCX: 00007fe27272a62a
RDX: 0000000020001100 RSI: 00000000200001c0 RDI: 00007fe270c9afe0
RBP: 00007fe270c9b020 R08: 00007fe270c9b020 R09: 0000000000208088
R10: 0000000000208088 R11: 0000000000000202 R12: 0000000020001100
R13: 00000000200001c0 R14: 00007fe270c9afe0 R15: 0000000020000240
Modules linked in:
REISERFS (device loop3): found reiserfs format "3.6" with non-standard journal
audit: type=1800 audit(1676754163.171:2826): pid=31797 uid=0 auid=4294967295 ses=4294967295 subj==unconfined op=collect_data cause=failed(directio) comm="syz-executor.0" name="file0" dev="sda1" ino=14422 res=0
REISERFS (device loop3): using ordered data mode
reiserfs: using flush barriers
---[ end trace c34e0451bfa86c10 ]---
RIP: 0010:flush_commit_list.isra.0+0xac1/0x1e20 fs/reiserfs/journal.c:1056
Code: c1 45 84 ca 0f 85 c2 0f 00 00 83 e2 07 40 38 d6 41 0f 9e c1 40 84 f6 0f 95 c2 41 84 d1 0f 85 a9 0f 00 00 41 8b 7c 24 14 31 d2 <48> f7 f7 48 8b 44 24 40 8d 34 11 48 c1 e8 03 80 3c 18 00 0f 85 6c
REISERFS (device loop3): journal params: device loop3, size 512, journal first block 18, max trans len 256, max batch 225, max commit age 30, max trans age 30
RSP: 0018:ffff88803bb9f610 EFLAGS: 00010246
RAX: 00000000000002b0 RBX: dffffc0000000000 RCX: 0000000000000000
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
REISERFS (device loop3): checking transaction log (loop3)
IPVS: ftp: loaded support on port[0] = 21
RBP: ffff88809f120200 R08: 0000000000000001 R09: 0000000000000001
R10: 0000000000000001 R11: 0000000000000000 R12: ffff888014aff000
REISERFS (device loop5): found reiserfs format "3.6" with non-standard journal
R13: 00000000000000c7 R14: 0000000000000100 R15: ffff888035ed43c0
FS:  00007fe270c9b700(0000) GS:ffff8880ba100000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 000055a0e41b4170 CR3: 000000004783b000 CR4: 00000000003406e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
----------------
Code disassembly (best guess):
   0:	c1 45 84 ca          	roll   $0xca,-0x7c(%rbp)
   4:	0f 85 c2 0f 00 00    	jne    0xfcc
   a:	83 e2 07             	and    $0x7,%edx
   d:	40 38 d6             	cmp    %dl,%sil
  10:	41 0f 9e c1          	setle  %r9b
  14:	40 84 f6             	test   %sil,%sil
  17:	0f 95 c2             	setne  %dl
  1a:	41 84 d1             	test   %dl,%r9b
  1d:	0f 85 a9 0f 00 00    	jne    0xfcc
  23:	41 8b 7c 24 14       	mov    0x14(%r12),%edi
  28:	31 d2                	xor    %edx,%edx
* 2a:	48 f7 f7             	div    %rdi <-- trapping instruction
  2d:	48 8b 44 24 40       	mov    0x40(%rsp),%rax
  32:	8d 34 11             	lea    (%rcx,%rdx,1),%esi
  35:	48 c1 e8 03          	shr    $0x3,%rax
  39:	80 3c 18 00          	cmpb   $0x0,(%rax,%rbx,1)
  3d:	0f                   	.byte 0xf
  3e:	85                   	.byte 0x85
  3f:	6c                   	insb   (%dx),%es:(%rdi)

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2023/02/18 21:02 linux-4.19.y 3f8a27f9e27b d02e9a70 .config console log report info [disk image] [vmlinux] ci2-linux-4-19 divide error in flush_commit_list
* Struck through repros no longer work on HEAD.