configfs-gadget.g1 gadget.1: uvc: uvc_function_bind() Oops: general protection fault, probably for non-canonical address 0xdffffc00000000f2: 0000 [#1] SMP KASAN NOPTI KASAN: null-ptr-deref in range [0x0000000000000790-0x0000000000000797] CPU: 0 UID: 0 PID: 5327 Comm: syz.0.0 Not tainted syzkaller #0 PREEMPT(full) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 RIP: 0010:uvcg_video_init+0x4e7/0x630 drivers/usb/gadget/function/uvc_video.c:824 Code: 89 63 60 48 89 d8 48 c1 e8 03 42 80 3c 28 00 74 08 48 89 df e8 aa 7b 67 fa 48 8b 1b 4c 8d bb 90 07 00 00 4c 89 f8 48 c1 e8 03 <42> 80 3c 28 00 74 08 4c 89 ff e8 8a 7b 67 fa 4d 8b 3f 49 83 c7 30 RSP: 0018:ffffc9000f727710 EFLAGS: 00010202 RAX: 00000000000000f2 RBX: 0000000000000000 RCX: ffff8880342bca80 RDX: 0000000000000000 RSI: ffffffff8e230455 RDI: ffffffff8c4bed80 RBP: 1ffff1100267e914 R08: ffffffff9057b737 R09: 1ffffffff20af6e6 R10: dffffc0000000000 R11: fffffbfff20af6e7 R12: fffffffffffffffc R13: dffffc0000000000 R14: ffff8880133f48a0 R15: 0000000000000790 FS: 00007f1db81f56c0(0000) GS:ffff88808c543000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000000 CR3: 000000001237e000 CR4: 0000000000352ef0 Call Trace: uvc_function_bind+0x1076/0x15a0 drivers/usb/gadget/function/f_uvc.c:874 usb_add_function+0x2e1/0x9f0 drivers/usb/gadget/composite.c:333 configfs_composite_bind+0xde0/0x1410 drivers/usb/gadget/configfs.c:1802 gadget_bind_driver+0x2ca/0x9e0 drivers/usb/gadget/udc/core.c:1662 call_driver_probe drivers/base/dd.c:-1 [inline] really_probe+0x254/0xae0 drivers/base/dd.c:706 __driver_probe_device+0x1e8/0x360 drivers/base/dd.c:868 driver_probe_device+0x4f/0x240 drivers/base/dd.c:898 __driver_attach+0x339/0x600 drivers/base/dd.c:1292 bus_for_each_dev+0x23b/0x2c0 drivers/base/bus.c:383 bus_add_driver+0x345/0x670 drivers/base/bus.c:763 driver_register+0x23a/0x320 drivers/base/driver.c:174 usb_gadget_register_driver_owner+0xf9/0x270 drivers/usb/gadget/udc/core.c:1752 gadget_dev_desc_UDC_store+0x1c9/0x2f0 drivers/usb/gadget/configfs.c:300 flush_write_buffer fs/configfs/file.c:207 [inline] configfs_write_iter+0x337/0x430 fs/configfs/file.c:229 new_sync_write fs/read_write.c:595 [inline] vfs_write+0x612/0xba0 fs/read_write.c:687 ksys_write+0x150/0x270 fs/read_write.c:739 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0x174/0x580 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f1dbbd9de99 Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 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 e8 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007f1db81f4fe8 EFLAGS: 00000246 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 00007f1dbc025fa0 RCX: 00007f1dbbd9de99 RDX: 000000000000000c RSI: 0000200000001f00 RDI: 0000000000000007 RBP: 00007f1dbbe33eaf R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 R13: 00007f1dbc026038 R14: 00007f1dbc025fa0 R15: 00007ffe676efd98 Modules linked in: ---[ end trace 0000000000000000 ]--- RIP: 0010:uvcg_video_init+0x4e7/0x630 drivers/usb/gadget/function/uvc_video.c:824 Code: 89 63 60 48 89 d8 48 c1 e8 03 42 80 3c 28 00 74 08 48 89 df e8 aa 7b 67 fa 48 8b 1b 4c 8d bb 90 07 00 00 4c 89 f8 48 c1 e8 03 <42> 80 3c 28 00 74 08 4c 89 ff e8 8a 7b 67 fa 4d 8b 3f 49 83 c7 30 RSP: 0018:ffffc9000f727710 EFLAGS: 00010202 RAX: 00000000000000f2 RBX: 0000000000000000 RCX: ffff8880342bca80 RDX: 0000000000000000 RSI: ffffffff8e230455 RDI: ffffffff8c4bed80 RBP: 1ffff1100267e914 R08: ffffffff9057b737 R09: 1ffffffff20af6e6 R10: dffffc0000000000 R11: fffffbfff20af6e7 R12: fffffffffffffffc R13: dffffc0000000000 R14: ffff8880133f48a0 R15: 0000000000000790 FS: 00007f1db81f56c0(0000) GS:ffff88808c543000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f7a93a8fe30 CR3: 000000001237e000 CR4: 0000000000352ef0 ---------------- Code disassembly (best guess): 0: 89 63 60 mov %esp,0x60(%rbx) 3: 48 89 d8 mov %rbx,%rax 6: 48 c1 e8 03 shr $0x3,%rax a: 42 80 3c 28 00 cmpb $0x0,(%rax,%r13,1) f: 74 08 je 0x19 11: 48 89 df mov %rbx,%rdi 14: e8 aa 7b 67 fa call 0xfa677bc3 19: 48 8b 1b mov (%rbx),%rbx 1c: 4c 8d bb 90 07 00 00 lea 0x790(%rbx),%r15 23: 4c 89 f8 mov %r15,%rax 26: 48 c1 e8 03 shr $0x3,%rax * 2a: 42 80 3c 28 00 cmpb $0x0,(%rax,%r13,1) <-- trapping instruction 2f: 74 08 je 0x39 31: 4c 89 ff mov %r15,%rdi 34: e8 8a 7b 67 fa call 0xfa677bc3 39: 4d 8b 3f mov (%r15),%r15 3c: 49 83 c7 30 add $0x30,%r15