[syzbot] general protection fault in pn533_out_complete

19 views
Skip to first unread message

syzbot

unread,
Jan 14, 2023, 1:45:48 AM1/14/23
to da...@davemloft.net, krzysztof...@linaro.org, linux-...@vger.kernel.org, linuxl...@yonsei.ac.kr, net...@vger.kernel.org, syzkall...@googlegroups.com
Hello,

syzbot found the following issue on:

HEAD commit: 435bf71af3a0 Add linux-next specific files for 20230110
git tree: linux-next
console+strace: https://syzkaller.appspot.com/x/log.txt?x=11926ea4480000
kernel config: https://syzkaller.appspot.com/x/.config?x=2de08b99ad4f49c
dashboard link: https://syzkaller.appspot.com/bug?extid=1e608ba4217c96d1952f
compiler: gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=14c88886480000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=1480685a480000

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/8541d2e988c8/disk-435bf71a.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/09d8d0545d93/vmlinux-435bf71a.xz
kernel image: https://storage.googleapis.com/syzbot-assets/f99de1e244bf/bzImage-435bf71a.xz

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+1e608b...@syzkaller.appspotmail.com

general protection fault, probably for non-canonical address 0xdffffc0000000000: 0000 [#1] PREEMPT SMP KASAN
KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]
CPU: 1 PID: 0 Comm: swapper/1 Not tainted 6.2.0-rc3-next-20230110-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/26/2022
RIP: 0010:pn533_out_complete.cold+0x15/0x44 drivers/nfc/pn533/usb.c:441
Code: df e8 aa 07 fa f7 e9 39 ff ff ff 48 89 df e8 9d 07 fa f7 eb e0 e8 d6 19 ac f7 4c 89 ea b8 ff ff 37 00 48 c1 ea 03 48 c1 e0 2a <80> 3c 02 00 75 1f 49 8b 7d 00 44 89 e2 48 c7 c6 80 be d0 8a 48 81
RSP: 0018:ffffc900001e0a58 EFLAGS: 00010086
RAX: dffffc0000000000 RBX: ffff88801f705800 RCX: 0000000000000100
RDX: 0000000000000000 RSI: ffffffff89d5a3ea RDI: 0000000000000005
RBP: ffffc90000a1ee70 R08: 0000000000000005 R09: 0000000000000000
R10: ffffffffffffffb9 R11: 0000000000000001 R12: ffffffffffffffb9
R13: 0000000000000000 R14: 0100000000000001 R15: 00000000ffffffb9
FS: 0000000000000000(0000) GS:ffff8880b9900000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007fffc3520bb0 CR3: 00000000262ac000 CR4: 00000000003506e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
<IRQ>
__usb_hcd_giveback_urb+0x2b6/0x5c0 drivers/usb/core/hcd.c:1671
usb_hcd_giveback_urb+0x384/0x430 drivers/usb/core/hcd.c:1754
dummy_timer+0x1203/0x32d0 drivers/usb/gadget/udc/dummy_hcd.c:1988
call_timer_fn+0x1da/0x800 kernel/time/timer.c:1700
expire_timers+0x234/0x330 kernel/time/timer.c:1751
__run_timers kernel/time/timer.c:2022 [inline]
__run_timers kernel/time/timer.c:1995 [inline]
run_timer_softirq+0x326/0x910 kernel/time/timer.c:2035
__do_softirq+0x1fb/0xaf6 kernel/softirq.c:571
invoke_softirq kernel/softirq.c:445 [inline]
__irq_exit_rcu+0x123/0x180 kernel/softirq.c:650
irq_exit_rcu+0x9/0x20 kernel/softirq.c:662
sysvec_apic_timer_interrupt+0x97/0xc0 arch/x86/kernel/apic/apic.c:1107
</IRQ>
<TASK>
asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:649
RIP: 0010:native_save_fl arch/x86/include/asm/irqflags.h:29 [inline]
RIP: 0010:arch_local_save_flags arch/x86/include/asm/irqflags.h:70 [inline]
RIP: 0010:arch_irqs_disabled arch/x86/include/asm/irqflags.h:130 [inline]
RIP: 0010:acpi_safe_halt drivers/acpi/processor_idle.c:113 [inline]
RIP: 0010:acpi_idle_do_entry+0x1fd/0x2a0 drivers/acpi/processor_idle.c:570
Code: 89 de e8 c6 c5 7a f7 84 db 75 ac e8 4d c9 7a f7 e8 c8 49 81 f7 66 90 e8 41 c9 7a f7 0f 00 2d ba cc aa 00 e8 35 c9 7a f7 fb f4 <9c> 5b 81 e3 00 02 00 00 fa 31 ff 48 89 de e8 f0 c5 7a f7 48 85 db
RSP: 0018:ffffc90000177d10 EFLAGS: 00000293
RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
RDX: ffff88813fe71d40 RSI: ffffffff8a06f48b RDI: 0000000000000000
RBP: ffff88813ff2a864 R08: 0000000000000001 R09: 0000000000000001
R10: 0000000000000000 R11: 0000000000000001 R12: 0000000000000001
R13: ffff88813ff2a800 R14: ffff88813ff2a864 R15: ffff88801867f004
acpi_idle_enter+0x368/0x510 drivers/acpi/processor_idle.c:707
cpuidle_enter_state+0x1af/0xd40 drivers/cpuidle/cpuidle.c:239
cpuidle_enter+0x4e/0xa0 drivers/cpuidle/cpuidle.c:356
call_cpuidle kernel/sched/idle.c:155 [inline]
cpuidle_idle_call kernel/sched/idle.c:236 [inline]
do_idle+0x3f7/0x590 kernel/sched/idle.c:303
cpu_startup_entry+0x18/0x20 kernel/sched/idle.c:400
start_secondary+0x256/0x300 arch/x86/kernel/smpboot.c:264
secondary_startup_64_no_verify+0xce/0xdb
</TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
RIP: 0010:pn533_out_complete.cold+0x15/0x44 drivers/nfc/pn533/usb.c:441
Code: df e8 aa 07 fa f7 e9 39 ff ff ff 48 89 df e8 9d 07 fa f7 eb e0 e8 d6 19 ac f7 4c 89 ea b8 ff ff 37 00 48 c1 ea 03 48 c1 e0 2a <80> 3c 02 00 75 1f 49 8b 7d 00 44 89 e2 48 c7 c6 80 be d0 8a 48 81
RSP: 0018:ffffc900001e0a58 EFLAGS: 00010086
RAX: dffffc0000000000 RBX: ffff88801f705800 RCX: 0000000000000100
RDX: 0000000000000000 RSI: ffffffff89d5a3ea RDI: 0000000000000005
RBP: ffffc90000a1ee70 R08: 0000000000000005 R09: 0000000000000000
R10: ffffffffffffffb9 R11: 0000000000000001 R12: ffffffffffffffb9
R13: 0000000000000000 R14: 0100000000000001 R15: 00000000ffffffb9
FS: 0000000000000000(0000) GS:ffff8880b9900000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007fffc3520bb0 CR3: 00000000262ac000 CR4: 00000000003506e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
----------------
Code disassembly (best guess), 1 bytes skipped:
0: e8 aa 07 fa f7 callq 0xf7fa07af
5: e9 39 ff ff ff jmpq 0xffffff43
a: 48 89 df mov %rbx,%rdi
d: e8 9d 07 fa f7 callq 0xf7fa07af
12: eb e0 jmp 0xfffffff4
14: e8 d6 19 ac f7 callq 0xf7ac19ef
19: 4c 89 ea mov %r13,%rdx
1c: b8 ff ff 37 00 mov $0x37ffff,%eax
21: 48 c1 ea 03 shr $0x3,%rdx
25: 48 c1 e0 2a shl $0x2a,%rax
* 29: 80 3c 02 00 cmpb $0x0,(%rdx,%rax,1) <-- trapping instruction
2d: 75 1f jne 0x4e
2f: 49 8b 7d 00 mov 0x0(%r13),%rdi
33: 44 89 e2 mov %r12d,%edx
36: 48 c7 c6 80 be d0 8a mov $0xffffffff8ad0be80,%rsi
3d: 48 rex.W
3e: 81 .byte 0x81


---
This report is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzk...@googlegroups.com.

syzbot will keep track of this issue. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.
syzbot can test patches for this issue, for details see:
https://goo.gl/tpsmEJ#testing-patches

Hillf Danton

unread,
Jan 14, 2023, 6:47:19 AM1/14/23
to syzbot, linux-...@vger.kernel.org, syzkall...@googlegroups.com
On Fri, 13 Jan 2023 22:45:46 -0800
> syzbot found the following issue on:
>
> HEAD commit: 435bf71af3a0 Add linux-next specific files for 20230110
> git tree: linux-next
> C reproducer: https://syzkaller.appspot.com/x/repro.c?x=1480685a480000

Set phy before submitting urb.

#syz test https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git 435bf71af3a0

--- x/drivers/nfc/pn533/usb.c
+++ y/drivers/nfc/pn533/usb.c
@@ -175,6 +175,7 @@ static int pn533_usb_send_frame(struct p
print_hex_dump_debug("PN533 TX: ", DUMP_PREFIX_NONE, 16, 1,
out->data, out->len, false);

+ arg.phy = phy;
init_completion(&arg.done);
cntx = phy->out_urb->context;
phy->out_urb->context = &arg;
--

syzbot

unread,
Jan 14, 2023, 7:32:19 AM1/14/23
to hda...@sina.com, linux-...@vger.kernel.org, syzkall...@googlegroups.com
Hello,

syzbot has tested the proposed patch and the reproducer did not trigger any issue:

Reported-and-tested-by: syzbot+1e608b...@syzkaller.appspotmail.com

Tested on:

commit: 435bf71a Add linux-next specific files for 20230110
git tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
console output: https://syzkaller.appspot.com/x/log.txt?x=11e59ca6480000
kernel config: https://syzkaller.appspot.com/x/.config?x=2de08b99ad4f49c
dashboard link: https://syzkaller.appspot.com/bug?extid=1e608ba4217c96d1952f
compiler: gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2
patch: https://syzkaller.appspot.com/x/patch.diff?x=1686c691480000

Note: testing is done by a robot and is best-effort only.
Reply all
Reply to author
Forward
0 new messages