[syzbot] [usb?] memory leak in usb_copy_descriptors

1 view
Skip to first unread message

syzbot

unread,
6:48 AM (8 hours ago) 6:48 AM
to gre...@linuxfoundation.org, linux-...@vger.kernel.org, linu...@vger.kernel.org, syzkall...@googlegroups.com
Hello,

syzbot found the following issue on:

HEAD commit: bd1dde877520 Merge tag 'vfs-7.2-rc6.fixes' of git://git.ke..
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=1319ec9e580000
kernel config: https://syzkaller.appspot.com/x/.config?x=ba7c2d1679fb08a2
dashboard link: https://syzkaller.appspot.com/bug?extid=28cf08dec5895bd562e6
compiler: gcc (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian) 2.44
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=11da8cc6580000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=10f92649580000

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/67c1dd5573b6/disk-bd1dde87.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/e5d8989642ed/vmlinux-bd1dde87.xz
kernel image: https://storage.googleapis.com/syzbot-assets/5864bcc5777f/bzImage-bd1dde87.xz

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

2026/08/03 10:38:22 executed programs: 5
BUG: memory leak
unreferenced object 0xffff8881154d0900 (size 64):
comm "syz.0.18", pid 5914, jiffies 4294944269
hex dump (first 32 bytes):
20 09 4d 15 81 88 ff ff 29 09 4d 15 81 88 ff ff .M.....).M.....
30 09 4d 15 81 88 ff ff 00 00 00 00 00 00 00 00 0.M.............
backtrace (crc f8bef12):
kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]
slab_post_alloc_hook mm/slub.c:4597 [inline]
slab_alloc_node mm/slub.c:4917 [inline]
__do_kmalloc_node mm/slub.c:5333 [inline]
__kmalloc_noprof+0x3bf/0x550 mm/slub.c:5359
_kmalloc_noprof include/linux/slab.h:992 [inline]
usb_copy_descriptors+0x6c/0x160 drivers/usb/gadget/config.c:82
usb_assign_descriptors+0x48/0x180 drivers/usb/gadget/config.c:121
loopback_bind+0xff/0x120 drivers/usb/gadget/function/f_loopback.c:209
usb_add_function+0xca/0x270 drivers/usb/gadget/composite.c:333
configfs_composite_bind+0x667/0x9b0 drivers/usb/gadget/configfs.c:1802
gadget_bind_driver+0xed/0x390 drivers/usb/gadget/udc/core.c:1662
call_driver_probe drivers/base/dd.c:628 [inline]
really_probe+0x12f/0x3a0 drivers/base/dd.c:706
__driver_probe_device+0xe9/0x1a0 drivers/base/dd.c:868
driver_probe_device+0x28/0xf0 drivers/base/dd.c:898
__driver_attach drivers/base/dd.c:1292 [inline]
__driver_attach+0x10a/0x200 drivers/base/dd.c:1232
bus_for_each_dev+0xb8/0x120 drivers/base/bus.c:383
bus_add_driver+0x122/0x280 drivers/base/bus.c:763
driver_register+0xb1/0x140 drivers/base/driver.c:174
usb_gadget_register_driver_owner+0x69/0xe0 drivers/usb/gadget/udc/core.c:1752
gadget_dev_desc_UDC_store+0x153/0x1e0 drivers/usb/gadget/configfs.c:300

BUG: memory leak
unreferenced object 0xffff8881154d0580 (size 64):
comm "syz.0.18", pid 5914, jiffies 4294944269
hex dump (first 32 bytes):
a0 05 4d 15 81 88 ff ff a9 05 4d 15 81 88 ff ff ..M.......M.....
b0 05 4d 15 81 88 ff ff 00 00 00 00 00 00 00 00 ..M.............
backtrace (crc cfada151):
kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]
slab_post_alloc_hook mm/slub.c:4597 [inline]
slab_alloc_node mm/slub.c:4917 [inline]
__do_kmalloc_node mm/slub.c:5333 [inline]
__kmalloc_noprof+0x3bf/0x550 mm/slub.c:5359
_kmalloc_noprof include/linux/slab.h:992 [inline]
usb_copy_descriptors+0x6c/0x160 drivers/usb/gadget/config.c:82
usb_assign_descriptors+0x6c/0x180 drivers/usb/gadget/config.c:126
loopback_bind+0xff/0x120 drivers/usb/gadget/function/f_loopback.c:209
usb_add_function+0xca/0x270 drivers/usb/gadget/composite.c:333
configfs_composite_bind+0x667/0x9b0 drivers/usb/gadget/configfs.c:1802
gadget_bind_driver+0xed/0x390 drivers/usb/gadget/udc/core.c:1662
call_driver_probe drivers/base/dd.c:628 [inline]
really_probe+0x12f/0x3a0 drivers/base/dd.c:706
__driver_probe_device+0xe9/0x1a0 drivers/base/dd.c:868
driver_probe_device+0x28/0xf0 drivers/base/dd.c:898
__driver_attach drivers/base/dd.c:1292 [inline]
__driver_attach+0x10a/0x200 drivers/base/dd.c:1232
bus_for_each_dev+0xb8/0x120 drivers/base/bus.c:383
bus_add_driver+0x122/0x280 drivers/base/bus.c:763
driver_register+0xb1/0x140 drivers/base/driver.c:174
usb_gadget_register_driver_owner+0x69/0xe0 drivers/usb/gadget/udc/core.c:1752
gadget_dev_desc_UDC_store+0x153/0x1e0 drivers/usb/gadget/configfs.c:300

BUG: memory leak
unreferenced object 0xffff888115497f60 (size 96):
comm "syz.0.18", pid 5914, jiffies 4294944269
hex dump (first 32 bytes):
90 7f 49 15 81 88 ff ff 99 7f 49 15 81 88 ff ff ..I.......I.....
a0 7f 49 15 81 88 ff ff a6 7f 49 15 81 88 ff ff ..I.......I.....
backtrace (crc c70322d9):
kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]
slab_post_alloc_hook mm/slub.c:4597 [inline]
slab_alloc_node mm/slub.c:4917 [inline]
__do_kmalloc_node mm/slub.c:5333 [inline]
__kmalloc_noprof+0x3bf/0x550 mm/slub.c:5359
_kmalloc_noprof include/linux/slab.h:992 [inline]
usb_copy_descriptors+0x6c/0x160 drivers/usb/gadget/config.c:82
usb_assign_descriptors+0xf9/0x180 drivers/usb/gadget/config.c:136
loopback_bind+0xff/0x120 drivers/usb/gadget/function/f_loopback.c:209
usb_add_function+0xca/0x270 drivers/usb/gadget/composite.c:333
configfs_composite_bind+0x667/0x9b0 drivers/usb/gadget/configfs.c:1802
gadget_bind_driver+0xed/0x390 drivers/usb/gadget/udc/core.c:1662
call_driver_probe drivers/base/dd.c:628 [inline]
really_probe+0x12f/0x3a0 drivers/base/dd.c:706
__driver_probe_device+0xe9/0x1a0 drivers/base/dd.c:868
driver_probe_device+0x28/0xf0 drivers/base/dd.c:898
__driver_attach drivers/base/dd.c:1292 [inline]
__driver_attach+0x10a/0x200 drivers/base/dd.c:1232
bus_for_each_dev+0xb8/0x120 drivers/base/bus.c:383
bus_add_driver+0x122/0x280 drivers/base/bus.c:763
driver_register+0xb1/0x140 drivers/base/driver.c:174
usb_gadget_register_driver_owner+0x69/0xe0 drivers/usb/gadget/udc/core.c:1752
gadget_dev_desc_UDC_store+0x153/0x1e0 drivers/usb/gadget/configfs.c:300

BUG: memory leak
unreferenced object 0xffff888110edd300 (size 64):
comm "syz.0.19", pid 5917, jiffies 4294944271
hex dump (first 32 bytes):
20 d3 ed 10 81 88 ff ff 29 d3 ed 10 81 88 ff ff .......).......
30 d3 ed 10 81 88 ff ff 00 00 00 00 00 00 00 00 0...............
backtrace (crc 316a7640):
kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]
slab_post_alloc_hook mm/slub.c:4597 [inline]
slab_alloc_node mm/slub.c:4917 [inline]
__do_kmalloc_node mm/slub.c:5333 [inline]
__kmalloc_noprof+0x3bf/0x550 mm/slub.c:5359
_kmalloc_noprof include/linux/slab.h:992 [inline]
usb_copy_descriptors+0x6c/0x160 drivers/usb/gadget/config.c:82
usb_assign_descriptors+0x48/0x180 drivers/usb/gadget/config.c:121
loopback_bind+0xff/0x120 drivers/usb/gadget/function/f_loopback.c:209
usb_add_function+0xca/0x270 drivers/usb/gadget/composite.c:333
configfs_composite_bind+0x667/0x9b0 drivers/usb/gadget/configfs.c:1802
gadget_bind_driver+0xed/0x390 drivers/usb/gadget/udc/core.c:1662
call_driver_probe drivers/base/dd.c:628 [inline]
really_probe+0x12f/0x3a0 drivers/base/dd.c:706
__driver_probe_device+0xe9/0x1a0 drivers/base/dd.c:868
driver_probe_device+0x28/0xf0 drivers/base/dd.c:898
__driver_attach drivers/base/dd.c:1292 [inline]
__driver_attach+0x10a/0x200 drivers/base/dd.c:1232
bus_for_each_dev+0xb8/0x120 drivers/base/bus.c:383
bus_add_driver+0x122/0x280 drivers/base/bus.c:763
driver_register+0xb1/0x140 drivers/base/driver.c:174
usb_gadget_register_driver_owner+0x69/0xe0 drivers/usb/gadget/udc/core.c:1752
gadget_dev_desc_UDC_store+0x153/0x1e0 drivers/usb/gadget/configfs.c:300

connection error: failed to recv *flatrpc.ExecutorMessageRawT: EOF


---
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.

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
Reply all
Reply to author
Forward
0 new messages