Re: memory leak in usb_set_configuration

From: Alan Stern
Date: Wed Dec 02 2020 - 15:33:49 EST


On Wed, Nov 11, 2020 at 05:55:27AM -0800, syzbot wrote:
> Hello,
>
> syzbot found the following issue on:
>
> HEAD commit: 407ab579 Merge tag 'for-linus' of git://git.kernel.org/pub..
> git tree: upstream
> console output: https://syzkaller.appspot.com/x/log.txt?x=16d84062500000
> kernel config: https://syzkaller.appspot.com/x/.config?x=a3f13716fa0212fd
> dashboard link: https://syzkaller.appspot.com/bug?extid=641bd6ff9b25e6d3aad1
> compiler: gcc (GCC) 10.1.0-syz 20200507
> syz repro: https://syzkaller.appspot.com/x/repro.syz?x=102c2094500000
> C reproducer: https://syzkaller.appspot.com/x/repro.c?x=16a8dfa8500000
>
> IMPORTANT: if you fix the issue, please add the following tag to the commit:
> Reported-by: syzbot+641bd6ff9b25e6d3aad1@xxxxxxxxxxxxxxxxxxxxxxxxx
>
> BUG: memory leak
> unreferenced object 0xffff88810ed7cc00 (size 1024):
> comm "kworker/0:3", pid 4907, jiffies 4294954595 (age 14.630s)
> hex dump (first 32 bytes):
> 48 92 b6 11 81 88 ff ff 48 92 b6 11 81 88 ff ff H.......H.......
> 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
> backtrace:
> [<00000000acb2212d>] kmalloc include/linux/slab.h:552 [inline]
> [<00000000acb2212d>] kzalloc include/linux/slab.h:664 [inline]
> [<00000000acb2212d>] usb_set_configuration+0x18c/0xb90 drivers/usb/core/message.c:1987
> [<00000000398ef244>] usb_generic_driver_probe+0x8c/0xc0 drivers/usb/core/generic.c:238
> [<00000000c8516fd1>] usb_probe_device+0x5c/0x140 drivers/usb/core/driver.c:293
> [<00000000eb555eca>] really_probe+0x159/0x480 drivers/base/dd.c:554
> [<0000000082b68944>] driver_probe_device+0x84/0x100 drivers/base/dd.c:738
> [<000000000485fb4d>] __device_attach_driver+0xee/0x110 drivers/base/dd.c:844
> [<00000000a0e84ad1>] bus_for_each_drv+0xb7/0x100 drivers/base/bus.c:431
> [<0000000017598cdd>] __device_attach+0x122/0x250 drivers/base/dd.c:912
> [<00000000201e5839>] bus_probe_device+0xc6/0xe0 drivers/base/bus.c:491
> [<00000000ec5f56bf>] device_add+0x5ac/0xc30 drivers/base/core.c:2936
> [<0000000049b5ad41>] usb_new_device.cold+0x166/0x578 drivers/usb/core/hub.c:2554
> [<0000000030bc00f0>] hub_port_connect drivers/usb/core/hub.c:5222 [inline]
> [<0000000030bc00f0>] hub_port_connect_change drivers/usb/core/hub.c:5362 [inline]
> [<0000000030bc00f0>] port_event drivers/usb/core/hub.c:5508 [inline]
> [<0000000030bc00f0>] hub_event+0x144a/0x20d0 drivers/usb/core/hub.c:5590
> [<00000000e89e69ae>] process_one_work+0x27d/0x590 kernel/workqueue.c:2272
> [<0000000063d76c23>] worker_thread+0x59/0x5d0 kernel/workqueue.c:2418
> [<00000000a311ec69>] kthread+0x178/0x1b0 kernel/kthread.c:292
> [<00000000690c42fe>] ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:296

#syz dup: memory leak in hub_event

Alan Stern