* [syzbot] [usb?] general protection fault in f_midi2_stop_eps
@ 2026-07-28 13:41 syzbot
2026-07-28 15:59 ` Forwarded: [PATCH] usb: gadget: f_midi2: Fix null dereference syzbot
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: syzbot @ 2026-07-28 13:41 UTC (permalink / raw)
To: gregkh, linux-kernel, linux-usb, syzkaller-bugs
Hello,
syzbot found the following issue on:
HEAD commit: 3dab139d4795 Merge tag 'rust-fixes-7.2-2' of git://git.ker..
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=137366b9580000
kernel config: https://syzkaller.appspot.com/x/.config?x=cb17729fb04b1e3a
dashboard link: https://syzkaller.appspot.com/bug?extid=bbb6dad313f4aaa8da6b
compiler: Debian clang version 22.1.8 (++20260613092233+e80beda6e255-1~exp1~20260613092250.77), Debian LLD 22.1.8
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=1369b746580000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=134a72ea580000
Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/647c579a2eab/disk-3dab139d.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/8800001c8ee2/vmlinux-3dab139d.xz
kernel image: https://storage.googleapis.com/syzbot-assets/337d386facb0/bzImage-3dab139d.xz
IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+bbb6dad313f4aaa8da6b@syzkaller.appspotmail.com
Oops: general protection fault, probably for non-canonical address 0xdffffc00000000ee: 0000 [#1] SMP KASAN PTI
KASAN: null-ptr-deref in range [0x0000000000000770-0x0000000000000777]
CPU: 0 UID: 0 PID: 16 Comm: ktimers/0 Not tainted syzkaller #0 PREEMPT_{RT,(full)}
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/16/2026
RIP: 0010:f_midi2_free_ep_reqs drivers/usb/gadget/function/f_midi2.c:1166 [inline]
RIP: 0010:f_midi2_stop_eps+0x28e/0x4d0 drivers/usb/gadget/function/f_midi2.c:1246
Code: 89 f0 48 c1 e8 03 42 80 3c 28 00 74 08 4c 89 f7 e8 27 af e7 fa 41 bf 70 07 00 00 4d 03 3e 4c 89 f8 48 c1 e8 03 48 89 44 24 18 <42> 0f b6 04 28 84 c0 0f 85 12 02 00 00 41 8b 1f 31 ff 89 de e8 e9
RSP: 0018:ffffc900001576f8 EFLAGS: 00010206
RAX: 00000000000000ee RBX: ffff88802eae0120 RCX: ffff88801caa8000
RDX: 0000000000000100 RSI: 0000000000000000 RDI: 0000000000000100
RBP: ffff88802eae0100 R08: ffffffff8faf9337 R09: 1ffffffff1f5f266
R10: dffffc0000000000 R11: fffffbfff1f5f267 R12: ffff88802eae0770
R13: dffffc0000000000 R14: ffff88802eae0128 R15: 0000000000000770
FS: 0000000000000000(0000) GS:ffff888125c42000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 000055557b4714e8 CR3: 0000000035be2000 CR4: 00000000003526f0
Call Trace:
<TASK>
f_midi2_set_alt+0x11c/0xf00 drivers/usb/gadget/function/f_midi2.c:1296
composite_setup+0x1ffd/0x3480 drivers/usb/gadget/composite.c:1933
configfs_composite_setup+0xbd/0x100 drivers/usb/gadget/configfs.c:1877
dummy_timer+0x2ea8/0x4b30 drivers/usb/gadget/udc/dummy_hcd.c:1937
__run_hrtimer kernel/time/hrtimer.c:2032 [inline]
__hrtimer_run_queues+0x3eb/0xaf0 kernel/time/hrtimer.c:2096
hrtimer_run_softirq+0x18f/0x260 kernel/time/hrtimer.c:2113
handle_softirqs+0x1d9/0x6c0 kernel/softirq.c:622
__do_softirq kernel/softirq.c:656 [inline]
run_ktimerd+0x69/0x100 kernel/softirq.c:1151
smpboot_thread_fn+0x57c/0xa80 kernel/smpboot.c:160
kthread+0x388/0x470 kernel/kthread.c:436
ret_from_fork+0x514/0xb70 arch/x86/kernel/process.c:158
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245
</TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
RIP: 0010:f_midi2_free_ep_reqs drivers/usb/gadget/function/f_midi2.c:1166 [inline]
RIP: 0010:f_midi2_stop_eps+0x28e/0x4d0 drivers/usb/gadget/function/f_midi2.c:1246
Code: 89 f0 48 c1 e8 03 42 80 3c 28 00 74 08 4c 89 f7 e8 27 af e7 fa 41 bf 70 07 00 00 4d 03 3e 4c 89 f8 48 c1 e8 03 48 89 44 24 18 <42> 0f b6 04 28 84 c0 0f 85 12 02 00 00 41 8b 1f 31 ff 89 de e8 e9
RSP: 0018:ffffc900001576f8 EFLAGS: 00010206
RAX: 00000000000000ee RBX: ffff88802eae0120 RCX: ffff88801caa8000
RDX: 0000000000000100 RSI: 0000000000000000 RDI: 0000000000000100
RBP: ffff88802eae0100 R08: ffffffff8faf9337 R09: 1ffffffff1f5f266
R10: dffffc0000000000 R11: fffffbfff1f5f267 R12: ffff88802eae0770
R13: dffffc0000000000 R14: ffff88802eae0128 R15: 0000000000000770
FS: 0000000000000000(0000) GS:ffff888125c42000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 000055557b4714e8 CR3: 0000000035be2000 CR4: 00000000003526f0
----------------
Code disassembly (best guess):
0: 89 f0 mov %esi,%eax
2: 48 c1 e8 03 shr $0x3,%rax
6: 42 80 3c 28 00 cmpb $0x0,(%rax,%r13,1)
b: 74 08 je 0x15
d: 4c 89 f7 mov %r14,%rdi
10: e8 27 af e7 fa call 0xfae7af3c
15: 41 bf 70 07 00 00 mov $0x770,%r15d
1b: 4d 03 3e add (%r14),%r15
1e: 4c 89 f8 mov %r15,%rax
21: 48 c1 e8 03 shr $0x3,%rax
25: 48 89 44 24 18 mov %rax,0x18(%rsp)
* 2a: 42 0f b6 04 28 movzbl (%rax,%r13,1),%eax <-- trapping instruction
2f: 84 c0 test %al,%al
31: 0f 85 12 02 00 00 jne 0x249
37: 41 8b 1f mov (%r15),%ebx
3a: 31 ff xor %edi,%edi
3c: 89 de mov %ebx,%esi
3e: e8 .byte 0xe8
3f: e9 .byte 0xe9
---
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 syzkaller@googlegroups.com.
syzbot will keep track of this issue. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.
If the report is already addressed, let syzbot know by replying with:
#syz fix: exact-commit-title
If you want syzbot to run the reproducer, reply with:
#syz test: git://repo/address.git branch-or-commit-hash
If you attach or paste a git patch, syzbot will apply it before testing.
If you want to overwrite report's subsystems, reply with:
#syz set subsystems: new-subsystem
(See the list of subsystem names on the web dashboard)
If the report is a duplicate of another one, reply with:
#syz dup: exact-subject-of-another-report
If you want to undo deduplication, reply with:
#syz undup
^ permalink raw reply [flat|nested] 4+ messages in thread
* Forwarded: [PATCH] usb: gadget: f_midi2: Fix null dereference
2026-07-28 13:41 [syzbot] [usb?] general protection fault in f_midi2_stop_eps syzbot
@ 2026-07-28 15:59 ` syzbot
2026-07-28 17:25 ` syzbot
2026-07-28 17:25 ` syzbot
2 siblings, 0 replies; 4+ messages in thread
From: syzbot @ 2026-07-28 15:59 UTC (permalink / raw)
To: linux-kernel
For archival purposes, forwarding an incoming command email to
linux-kernel@vger.kernel.org.
***
Subject: [PATCH] usb: gadget: f_midi2: Fix null dereference
Author: michail.tatas@gmail.com
#syz test
f_midi2_bind only binds if
if (... != SNDRV_UMP_DIR_OUTPUT)
...
if (... != SNDRV_UMP_DIR_INPUT)
...
When f_midi2_set_alt gets called, it uncoditionally calls
f_midi2_stop_eps which triggers a null dereference in
f_midi2_free_ep_reqs
Add guard to catch dereference in f_midi2_free_ep_reqs like
f_midi2_drop_reqs already has
Signed-off-by: Michail Tatas <michail.tatas@gmail.com>
---
drivers/usb/gadget/function/f_midi2.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/usb/gadget/function/f_midi2.c b/drivers/usb/gadget/function/f_midi2.c
index 19fdac024343..b84f2c220b2e 100644
--- a/drivers/usb/gadget/function/f_midi2.c
+++ b/drivers/usb/gadget/function/f_midi2.c
@@ -1163,6 +1163,9 @@ static void f_midi2_free_ep_reqs(struct f_midi2_usb_ep *usb_ep)
struct f_midi2 *midi2 = usb_ep->card;
int i;
+ if (!usb_ep->usb_ep || !usb_ep->num_reqs)
+ return;
+
for (i = 0; i < midi2->info.num_reqs; i++) {
if (!usb_ep->reqs[i].req)
continue;
--
2.43.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Forwarded: [PATCH] usb: gadget: f_midi2: Fix null dereference
2026-07-28 13:41 [syzbot] [usb?] general protection fault in f_midi2_stop_eps syzbot
2026-07-28 15:59 ` Forwarded: [PATCH] usb: gadget: f_midi2: Fix null dereference syzbot
2026-07-28 17:25 ` syzbot
@ 2026-07-28 17:25 ` syzbot
2 siblings, 0 replies; 4+ messages in thread
From: syzbot @ 2026-07-28 17:25 UTC (permalink / raw)
To: linux-kernel
For archival purposes, forwarding an incoming command email to
linux-kernel@vger.kernel.org.
***
Subject: [PATCH] usb: gadget: f_midi2: Fix null dereference
Author: michail.tatas@gmail.com
#syz test
f_midi2_bind only binds if
if (... != SNDRV_UMP_DIR_OUTPUT)
...
if (... != SNDRV_UMP_DIR_INPUT)
...
When f_midi2_set_alt gets called, it uncoditionally calls
f_midi2_stop_eps which triggers a null dereference in
f_midi2_free_ep_reqs
Add guard to catch dereference in f_midi2_free_ep_reqs like
f_midi2_drop_reqs already has
Signed-off-by: Michail Tatas <michail.tatas@gmail.com>
---
drivers/usb/gadget/function/f_midi2.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/usb/gadget/function/f_midi2.c b/drivers/usb/gadget/function/f_midi2.c
index 19fdac024343..b9bb09c4b51a 100644
--- a/drivers/usb/gadget/function/f_midi2.c
+++ b/drivers/usb/gadget/function/f_midi2.c
@@ -1163,6 +1163,9 @@ static void f_midi2_free_ep_reqs(struct f_midi2_usb_ep *usb_ep)
struct f_midi2 *midi2 = usb_ep->card;
int i;
+ if (!usb_ep->usb_ep || !usb_ep->num_reqs)
+ return;
+
for (i = 0; i < midi2->info.num_reqs; i++) {
if (!usb_ep->reqs[i].req)
continue;
@@ -1203,6 +1206,9 @@ static int f_midi2_init_ep(struct f_midi2 *midi2, struct f_midi2_ep *ep,
/* Free EP */
static void f_midi2_free_ep(struct f_midi2_usb_ep *usb_ep)
{
+ if(!usb_ep->usb_ep)
+ return;
+
f_midi2_drop_reqs(usb_ep);
f_midi2_free_ep_reqs(usb_ep);
--
2.43.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Forwarded: [PATCH] usb: gadget: f_midi2: Fix null dereference
2026-07-28 13:41 [syzbot] [usb?] general protection fault in f_midi2_stop_eps syzbot
2026-07-28 15:59 ` Forwarded: [PATCH] usb: gadget: f_midi2: Fix null dereference syzbot
@ 2026-07-28 17:25 ` syzbot
2026-07-28 17:25 ` syzbot
2 siblings, 0 replies; 4+ messages in thread
From: syzbot @ 2026-07-28 17:25 UTC (permalink / raw)
To: linux-kernel
For archival purposes, forwarding an incoming command email to
linux-kernel@vger.kernel.org.
***
Subject: [PATCH] usb: gadget: f_midi2: Fix null dereference
Author: michail.tatas@gmail.com
#syz test
f_midi2_bind only binds if
if (... != SNDRV_UMP_DIR_OUTPUT)
...
if (... != SNDRV_UMP_DIR_INPUT)
...
When f_midi2_set_alt gets called, it uncoditionally calls
f_midi2_stop_eps which triggers a null dereference in
f_midi2_free_ep_reqs
Add guard to catch dereference in f_midi2_free_ep_reqs like
f_midi2_drop_reqs already has
Signed-off-by: Michail Tatas <michail.tatas@gmail.com>
---
drivers/usb/gadget/function/f_midi2.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/usb/gadget/function/f_midi2.c b/drivers/usb/gadget/function/f_midi2.c
index 19fdac024343..b9bb09c4b51a 100644
--- a/drivers/usb/gadget/function/f_midi2.c
+++ b/drivers/usb/gadget/function/f_midi2.c
@@ -1163,6 +1163,9 @@ static void f_midi2_free_ep_reqs(struct f_midi2_usb_ep *usb_ep)
struct f_midi2 *midi2 = usb_ep->card;
int i;
+ if (!usb_ep->usb_ep || !usb_ep->num_reqs)
+ return;
+
for (i = 0; i < midi2->info.num_reqs; i++) {
if (!usb_ep->reqs[i].req)
continue;
@@ -1203,6 +1206,9 @@ static int f_midi2_init_ep(struct f_midi2 *midi2, struct f_midi2_ep *ep,
/* Free EP */
static void f_midi2_free_ep(struct f_midi2_usb_ep *usb_ep)
{
+ if(!usb_ep->usb_ep)
+ return;
+
f_midi2_drop_reqs(usb_ep);
f_midi2_free_ep_reqs(usb_ep);
--
2.43.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-07-28 17:25 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-28 13:41 [syzbot] [usb?] general protection fault in f_midi2_stop_eps syzbot
2026-07-28 15:59 ` Forwarded: [PATCH] usb: gadget: f_midi2: Fix null dereference syzbot
2026-07-28 17:25 ` syzbot
2026-07-28 17:25 ` syzbot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.