syzbot


general protection fault in ocfs2_xa_block_wipe_namevalue

Status: fixed on 2024/12/11 22:47
Subsystems: ocfs2
[Documentation on labels]
Reported-by: syzbot+386ce9e60fa1b18aac5b@syzkaller.appspotmail.com
Fix commit: 0b63c0e01fba ocfs2: remove entry once instead of null-ptr-dereference in ocfs2_xa_remove()
First crash: 96d, last: 96d
Discussions (4)
Title Replies (including bot) Last reply
[PATCH v2] ocfs2: remove entry once instead of null-ptr-dereference in ocfs2_xa_remove() 2 (2) 2024/11/04 01:15
Re: [syzbot] [ocfs2?] general protection fault in [v2] ocfs2_xa_block_wipe_namevalue 2 (3) 2024/11/03 19:05
[syzbot] [ocfs2?] general protection fault in ocfs2_xa_block_wipe_namevalue 0 (3) 2024/11/03 18:40
[PATCH] ocfs2: remove entry once instead of null-ptr-dereference in ocfs2_xa_remove() 3 (3) 2024/11/03 17:50
Last patch testing requests (3)
Created Duration User Patch Repo Result
2024/11/03 18:40 19m andrew.kanner@gmail.com patch upstream OK log
2024/11/03 18:33 30m andrew.kanner@gmail.com patch upstream OK log
2024/10/29 21:40 19m andrew.kanner@gmail.com patch upstream OK log

Sample crash report:
(syz-executor887,5095,0):ocfs2_xa_remove:2028 ERROR: status = -12
(syz-executor887,5095,0):ocfs2_xa_cleanup_value_truncate:1999 ERROR: Partial truncate while removing xattr overlay.upper.  Leaking 1 clusters and removing the entry
Oops: general protection fault, probably for non-canonical address 0xdffffc0000000000: 0000 [#1] PREEMPT SMP KASAN NOPTI
KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]
CPU: 0 UID: 0 PID: 5095 Comm: syz-executor887 Not tainted 6.12.0-rc4-syzkaller-00047-gc2ee9f594da8 #0
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014
RIP: 0010:ocfs2_xa_block_wipe_namevalue+0x91/0x550 fs/ocfs2/xattr.c:1637
Code: f8 48 c1 e8 03 48 bb 00 00 00 00 00 fc ff df 0f b6 04 18 84 c0 0f 85 f7 03 00 00 45 0f b7 27 49 8d 7d 04 48 89 f8 48 c1 e8 03 <0f> b6 04 18 84 c0 0f 85 f9 03 00 00 41 0f b7 45 04 89 44 24 04 49
RSP: 0018:ffffc9000aecebf0 EFLAGS: 00010247
RAX: 0000000000000000 RBX: dffffc0000000000 RCX: dffffc0000000000
RDX: 0000000000000000 RSI: 00000000fffffff4 RDI: 0000000000000004
RBP: ffffc9000aecf418 R08: ffffffff83a08052 R09: 0000000000000000
R10: ffff8880473f73c0 R11: ffffffff83a0a5e0 R12: 0000000000000000
R13: 0000000000000000 R14: ffffc9000aecf410 R15: ffff8880473f7230
FS:  000055557176f380(0000) GS:ffff88801fc00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000020001400 CR3: 000000003fa50000 CR4: 0000000000352ef0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
 <TASK>
 ocfs2_xa_wipe_namevalue fs/ocfs2/xattr.c:1470 [inline]
 ocfs2_xa_remove_entry fs/ocfs2/xattr.c:1941 [inline]
 ocfs2_xa_remove fs/ocfs2/xattr.c:2044 [inline]
 ocfs2_xa_set+0x1120/0x2b40 fs/ocfs2/xattr.c:2248
 ocfs2_xattr_block_set+0x46e/0x3390 fs/ocfs2/xattr.c:2986
 __ocfs2_xattr_set_handle+0x28c/0x10a0
 ocfs2_xattr_set+0x128c/0x1930 fs/ocfs2/xattr.c:3651
 __vfs_removexattr+0x42a/0x460 fs/xattr.c:518
 __vfs_removexattr_locked+0x206/0x450 fs/xattr.c:553
 vfs_removexattr+0x103/0x2b0 fs/xattr.c:575
 removexattr fs/xattr.c:907 [inline]
 path_removexattr+0x284/0x3a0 fs/xattr.c:928
 __do_sys_lremovexattr fs/xattr.c:948 [inline]
 __se_sys_lremovexattr fs/xattr.c:945 [inline]
 __x64_sys_lremovexattr+0x5d/0x70 fs/xattr.c:945
 do_syscall_x64 arch/x86/entry/common.c:52 [inline]
 do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7fdd4bc7a7c9
Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 d1 1a 00 00 90 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 b8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007fffe80c9a48 EFLAGS: 00000246 ORIG_RAX: 00000000000000c6
RAX: ffffffffffffffda RBX: 00007fffe80c9a60 RCX: 00007fdd4bc7a7c9
RDX: 00007fdd4bc79950 RSI: 0000000020000280 RDI: 0000000020000240
RBP: 0000000000000001 R08: 00007fffe80c97e7 R09: 0000555571770378
R10: 0000000000000001 R11: 0000000000000246 R12: 00007fffe80c9a80
R13: 00007fffe80c9ca8 R14: 431bde82d7b634db R15: 00007fdd4bcbc01d
 </TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
RIP: 0010:ocfs2_xa_block_wipe_namevalue+0x91/0x550 fs/ocfs2/xattr.c:1637
Code: f8 48 c1 e8 03 48 bb 00 00 00 00 00 fc ff df 0f b6 04 18 84 c0 0f 85 f7 03 00 00 45 0f b7 27 49 8d 7d 04 48 89 f8 48 c1 e8 03 <0f> b6 04 18 84 c0 0f 85 f9 03 00 00 41 0f b7 45 04 89 44 24 04 49
RSP: 0018:ffffc9000aecebf0 EFLAGS: 00010247
RAX: 0000000000000000 RBX: dffffc0000000000 RCX: dffffc0000000000
RDX: 0000000000000000 RSI: 00000000fffffff4 RDI: 0000000000000004
RBP: ffffc9000aecf418 R08: ffffffff83a08052 R09: 0000000000000000
R10: ffff8880473f73c0 R11: ffffffff83a0a5e0 R12: 0000000000000000
R13: 0000000000000000 R14: ffffc9000aecf410 R15: ffff8880473f7230
FS:  000055557176f380(0000) GS:ffff88801fc00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000020001400 CR3: 000000003fa50000 CR4: 0000000000352ef0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
----------------
Code disassembly (best guess):
   0:	f8                   	clc
   1:	48 c1 e8 03          	shr    $0x3,%rax
   5:	48 bb 00 00 00 00 00 	movabs $0xdffffc0000000000,%rbx
   c:	fc ff df
   f:	0f b6 04 18          	movzbl (%rax,%rbx,1),%eax
  13:	84 c0                	test   %al,%al
  15:	0f 85 f7 03 00 00    	jne    0x412
  1b:	45 0f b7 27          	movzwl (%r15),%r12d
  1f:	49 8d 7d 04          	lea    0x4(%r13),%rdi
  23:	48 89 f8             	mov    %rdi,%rax
  26:	48 c1 e8 03          	shr    $0x3,%rax
* 2a:	0f b6 04 18          	movzbl (%rax,%rbx,1),%eax <-- trapping instruction
  2e:	84 c0                	test   %al,%al
  30:	0f 85 f9 03 00 00    	jne    0x42f
  36:	41 0f b7 45 04       	movzwl 0x4(%r13),%eax
  3b:	89 44 24 04          	mov    %eax,0x4(%rsp)
  3f:	49                   	rex.WB

Crashes (4):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2024/10/23 12:34 upstream c2ee9f594da8 15fa2979 .config console log report syz / log C [disk image (non-bootable)] [vmlinux] [kernel image] [mounted in repro] ci-snapshot-upstream-root general protection fault in ocfs2_xa_block_wipe_namevalue
2024/10/23 11:57 upstream c2ee9f594da8 15fa2979 .config console log report syz / log C [disk image (non-bootable)] [vmlinux] [kernel image] [mounted in repro] ci-snapshot-upstream-root general protection fault in ocfs2_xa_block_wipe_namevalue
2024/10/23 11:12 upstream c2ee9f594da8 15fa2979 .config console log report syz / log C [disk image (non-bootable)] [vmlinux] [kernel image] [mounted in repro] ci-snapshot-upstream-root general protection fault in ocfs2_xa_block_wipe_namevalue
2024/10/23 10:07 upstream c2ee9f594da8 15fa2979 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root general protection fault in ocfs2_xa_block_wipe_namevalue
* Struck through repros no longer work on HEAD.