Re: [syzbot] [usb?] memory leak in hidg_bind

From: syzbot

Date: Mon Aug 10 2026 - 00:18:10 EST


Hello,

syzbot has tested the proposed patch but the reproducer is still triggering an issue:
memory leak in usb_get_function

2026/08/10 04:15:52 executed programs: 21
2026/08/10 04:15:58 executed programs: 23
2026/08/10 04:16:04 executed programs: 25
2026/08/10 04:16:09 executed programs: 27
BUG: memory leak
unreferenced object 0xffff888111f44000 (size 2048):
comm "syz.0.37", pid 6720, jiffies 4294950131
hex dump (first 32 bytes):
00 00 01 01 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 04 00 01 00 00 00 00 00 00 00 00 00 00 00 ................
backtrace (crc b745374a):
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]
__kmalloc_cache_noprof+0x356/0x440 mm/slub.c:5485
_kmalloc_noprof include/linux/slab.h:988 [inline]
_kzalloc_noprof include/linux/slab.h:1309 [inline]
hidg_alloc+0x2c/0x270 drivers/usb/gadget/function/f_hid.c:1603
usb_get_function+0x21/0x60 drivers/usb/gadget/functions.c:61
config_usb_cfg_link+0x10d/0x190 drivers/usb/gadget/configfs.c:469
configfs_symlink+0x28c/0x860 fs/configfs/symlink.c:196
vfs_symlink fs/namei.c:5660 [inline]
vfs_symlink+0xd1/0x240 fs/namei.c:5639
filename_symlinkat+0x17e/0x2b0 fs/namei.c:5685
__do_sys_symlinkat fs/namei.c:5705 [inline]
__se_sys_symlinkat fs/namei.c:5700 [inline]
__x64_sys_symlinkat+0x47/0x70 fs/namei.c:5700
do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
do_syscall_64+0xf8/0x610 arch/x86/entry/syscall_64.c:94
entry_SYSCALL_64_after_hwframe+0x77/0x7f

BUG: memory leak
unreferenced object 0xffff888114b800f8 (size 8):
comm "syz.0.37", pid 6720, jiffies 4294950131
hex dump (first 8 bytes):
68 69 64 67 30 00 00 00 hidg0...
backtrace (crc 557cac88):
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_node_track_caller_noprof+0x3d3/0x570 mm/slub.c:5471
kvasprintf+0x6e/0xf0 lib/kasprintf.c:25
kvasprintf_const+0x5c/0x110 lib/kasprintf.c:49
kobject_set_name_vargs+0x40/0xd0 lib/kobject.c:274
dev_set_name+0x6d/0x90 drivers/base/core.c:3560
hidg_alloc+0x132/0x270 drivers/usb/gadget/function/f_hid.c:1625
usb_get_function+0x21/0x60 drivers/usb/gadget/functions.c:61
config_usb_cfg_link+0x10d/0x190 drivers/usb/gadget/configfs.c:469
configfs_symlink+0x28c/0x860 fs/configfs/symlink.c:196
vfs_symlink fs/namei.c:5660 [inline]
vfs_symlink+0xd1/0x240 fs/namei.c:5639
filename_symlinkat+0x17e/0x2b0 fs/namei.c:5685
__do_sys_symlinkat fs/namei.c:5705 [inline]
__se_sys_symlinkat fs/namei.c:5700 [inline]
__x64_sys_symlinkat+0x47/0x70 fs/namei.c:5700
do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
do_syscall_64+0xf8/0x610 arch/x86/entry/syscall_64.c:94
entry_SYSCALL_64_after_hwframe+0x77/0x7f

BUG: memory leak
unreferenced object 0xffff888128bac500 (size 256):
comm "syz.0.37", pid 6720, jiffies 4294950131
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 08 c5 ba 28 81 88 ff ff ...........(....
08 c5 ba 28 81 88 ff ff 00 ce 4e 83 ff ff ff ff ...(......N.....
backtrace (crc 57fd964b):
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]
__kmalloc_cache_noprof+0x356/0x440 mm/slub.c:5485
_kmalloc_noprof include/linux/slab.h:988 [inline]
_kzalloc_noprof include/linux/slab.h:1309 [inline]
device_private_init drivers/base/core.c:3602 [inline]
device_add+0x740/0xc80 drivers/base/core.c:3653
cdev_device_add+0x7e/0x100 fs/char_dev.c:553
hidg_bind+0x385/0x490 drivers/usb/gadget/function/f_hid.c:1289
usb_add_function+0xca/0x270 drivers/usb/gadget/composite.c:333
configfs_composite_bind+0x667/0x9b0 drivers/usb/gadget/configfs.c:1796
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


Tested on:

commit: db2ddb87 Linux 7.2-rc7
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=123da079580000
kernel config: https://syzkaller.appspot.com/x/.config?x=6843f8fd2336602d
dashboard link: https://syzkaller.appspot.com/bug?extid=60740c6a17a5b5eb1f5a
compiler: gcc (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian) 2.44
patch: https://syzkaller.appspot.com/x/patch.diff?x=171462c6580000