[syzbot] memory leak in em28xx_dvb_init

19 views
Skip to first unread message

syzbot

unread,
Mar 16, 2021, 6:09:20 AM3/16/21
to linux-...@vger.kernel.org, linux...@vger.kernel.org, mch...@kernel.org, syzkall...@googlegroups.com
Hello,

syzbot found the following issue on:

HEAD commit: 1a4431a5 Merge tag 'afs-fixes-20210315' of git://git.kerne..
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=11013a7cd00000
kernel config: https://syzkaller.appspot.com/x/.config?x=ff6b8b2e9d5a1227
dashboard link: https://syzkaller.appspot.com/bug?extid=889397c820fa56adf25d
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=1559ae3ad00000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=176985c6d00000

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

BUG: memory leak
unreferenced object 0xffff888110082700 (size 64):
comm "kworker/1:2", pid 57, jiffies 4294943656 (age 13.350s)
hex dump (first 32 bytes):
c0 40 0d 0d 81 88 ff ff 40 4b 0d 0d 81 88 ff ff .@......@K......
c0 bc d4 0f 81 88 ff ff 00 b3 d4 0f 81 88 ff ff ................
backtrace:
[<ffffffff8304c141>] kmalloc_array.constprop.0+0x41/0x60 include/linux/slab.h:594
[<ffffffff8304dba2>] kcalloc include/linux/slab.h:623 [inline]
[<ffffffff8304dba2>] em28xx_alloc_urbs+0x102/0x550 drivers/media/usb/em28xx/em28xx-core.c:930
[<ffffffff84279fa7>] em28xx_dvb_init drivers/media/usb/em28xx/em28xx-dvb.c:1517 [inline]
[<ffffffff84279fa7>] em28xx_dvb_init.cold+0xa3/0x2bb1 drivers/media/usb/em28xx/em28xx-dvb.c:1483
[<ffffffff8304e33b>] em28xx_init_extension+0x9b/0xe0 drivers/media/usb/em28xx/em28xx-core.c:1126
[<ffffffff83050143>] request_module_async+0x33/0x40 drivers/media/usb/em28xx/em28xx-cards.c:3406
[<ffffffff81259229>] process_one_work+0x2c9/0x600 kernel/workqueue.c:2275
[<ffffffff81259dbb>] process_scheduled_works kernel/workqueue.c:2337 [inline]
[<ffffffff81259dbb>] worker_thread+0x2fb/0x5d0 kernel/workqueue.c:2426
[<ffffffff81261228>] kthread+0x178/0x1b0 kernel/kthread.c:292
[<ffffffff8100227f>] ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:294

BUG: memory leak
unreferenced object 0xffff8881100825c0 (size 64):
comm "kworker/1:2", pid 57, jiffies 4294943656 (age 13.350s)
hex dump (first 32 bytes):
00 00 b8 10 81 88 ff ff 00 00 b8 0b 81 88 ff ff ................
00 00 b9 0b 81 88 ff ff 00 00 16 13 81 88 ff ff ................
backtrace:
[<ffffffff8304c141>] kmalloc_array.constprop.0+0x41/0x60 include/linux/slab.h:594
[<ffffffff8304dbbc>] kcalloc include/linux/slab.h:623 [inline]
[<ffffffff8304dbbc>] em28xx_alloc_urbs+0x11c/0x550 drivers/media/usb/em28xx/em28xx-core.c:934
[<ffffffff84279fa7>] em28xx_dvb_init drivers/media/usb/em28xx/em28xx-dvb.c:1517 [inline]
[<ffffffff84279fa7>] em28xx_dvb_init.cold+0xa3/0x2bb1 drivers/media/usb/em28xx/em28xx-dvb.c:1483
[<ffffffff8304e33b>] em28xx_init_extension+0x9b/0xe0 drivers/media/usb/em28xx/em28xx-core.c:1126
[<ffffffff83050143>] request_module_async+0x33/0x40 drivers/media/usb/em28xx/em28xx-cards.c:3406
[<ffffffff81259229>] process_one_work+0x2c9/0x600 kernel/workqueue.c:2275
[<ffffffff81259dbb>] process_scheduled_works kernel/workqueue.c:2337 [inline]
[<ffffffff81259dbb>] worker_thread+0x2fb/0x5d0 kernel/workqueue.c:2426
[<ffffffff81261228>] kthread+0x178/0x1b0 kernel/kthread.c:292
[<ffffffff8100227f>] ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:294

BUG: memory leak
unreferenced object 0xffff88810d0d40c0 (size 192):
comm "kworker/1:2", pid 57, jiffies 4294943656 (age 13.350s)
hex dump (first 32 bytes):
01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 d8 40 0d 0d 81 88 ff ff .........@......
backtrace:
[<ffffffff82b9eda6>] kmalloc include/linux/slab.h:559 [inline]
[<ffffffff82b9eda6>] usb_alloc_urb+0x66/0xe0 drivers/usb/core/urb.c:74
[<ffffffff8304dd07>] em28xx_alloc_urbs+0x267/0x550 drivers/media/usb/em28xx/em28xx-core.c:952
[<ffffffff84279fa7>] em28xx_dvb_init drivers/media/usb/em28xx/em28xx-dvb.c:1517 [inline]
[<ffffffff84279fa7>] em28xx_dvb_init.cold+0xa3/0x2bb1 drivers/media/usb/em28xx/em28xx-dvb.c:1483
[<ffffffff8304e33b>] em28xx_init_extension+0x9b/0xe0 drivers/media/usb/em28xx/em28xx-core.c:1126
[<ffffffff83050143>] request_module_async+0x33/0x40 drivers/media/usb/em28xx/em28xx-cards.c:3406
[<ffffffff81259229>] process_one_work+0x2c9/0x600 kernel/workqueue.c:2275
[<ffffffff81259dbb>] process_scheduled_works kernel/workqueue.c:2337 [inline]
[<ffffffff81259dbb>] worker_thread+0x2fb/0x5d0 kernel/workqueue.c:2426
[<ffffffff81261228>] kthread+0x178/0x1b0 kernel/kthread.c:292
[<ffffffff8100227f>] ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:294

BUG: memory leak
unreferenced object 0xffff88810d0d4b40 (size 192):
comm "kworker/1:2", pid 57, jiffies 4294943656 (age 13.350s)
hex dump (first 32 bytes):
01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 58 4b 0d 0d 81 88 ff ff ........XK......
backtrace:
[<ffffffff82b9eda6>] kmalloc include/linux/slab.h:559 [inline]
[<ffffffff82b9eda6>] usb_alloc_urb+0x66/0xe0 drivers/usb/core/urb.c:74
[<ffffffff8304dd07>] em28xx_alloc_urbs+0x267/0x550 drivers/media/usb/em28xx/em28xx-core.c:952
[<ffffffff84279fa7>] em28xx_dvb_init drivers/media/usb/em28xx/em28xx-dvb.c:1517 [inline]
[<ffffffff84279fa7>] em28xx_dvb_init.cold+0xa3/0x2bb1 drivers/media/usb/em28xx/em28xx-dvb.c:1483
[<ffffffff8304e33b>] em28xx_init_extension+0x9b/0xe0 drivers/media/usb/em28xx/em28xx-core.c:1126
[<ffffffff83050143>] request_module_async+0x33/0x40 drivers/media/usb/em28xx/em28xx-cards.c:3406
[<ffffffff81259229>] process_one_work+0x2c9/0x600 kernel/workqueue.c:2275
[<ffffffff81259dbb>] process_scheduled_works kernel/workqueue.c:2337 [inline]
[<ffffffff81259dbb>] worker_thread+0x2fb/0x5d0 kernel/workqueue.c:2426
[<ffffffff81261228>] kthread+0x178/0x1b0 kernel/kthread.c:292
[<ffffffff8100227f>] ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:294

BUG: memory leak
unreferenced object 0xffff88810fd4bcc0 (size 192):
comm "kworker/1:2", pid 57, jiffies 4294943656 (age 13.350s)
hex dump (first 32 bytes):
01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 d8 bc d4 0f 81 88 ff ff ................
backtrace:
[<ffffffff82b9eda6>] kmalloc include/linux/slab.h:559 [inline]
[<ffffffff82b9eda6>] usb_alloc_urb+0x66/0xe0 drivers/usb/core/urb.c:74
[<ffffffff8304dd07>] em28xx_alloc_urbs+0x267/0x550 drivers/media/usb/em28xx/em28xx-core.c:952
[<ffffffff84279fa7>] em28xx_dvb_init drivers/media/usb/em28xx/em28xx-dvb.c:1517 [inline]
[<ffffffff84279fa7>] em28xx_dvb_init.cold+0xa3/0x2bb1 drivers/media/usb/em28xx/em28xx-dvb.c:1483
[<ffffffff8304e33b>] em28xx_init_extension+0x9b/0xe0 drivers/media/usb/em28xx/em28xx-core.c:1126
[<ffffffff83050143>] request_module_async+0x33/0x40 drivers/media/usb/em28xx/em28xx-cards.c:3406
[<ffffffff81259229>] process_one_work+0x2c9/0x600 kernel/workqueue.c:2275
[<ffffffff81259dbb>] process_scheduled_works kernel/workqueue.c:2337 [inline]
[<ffffffff81259dbb>] worker_thread+0x2fb/0x5d0 kernel/workqueue.c:2426
[<ffffffff81261228>] kthread+0x178/0x1b0 kernel/kthread.c:292
[<ffffffff8100227f>] ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:294



---
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.
syzbot can test patches for this issue, for details see:
https://goo.gl/tpsmEJ#testing-patches

syzbot

unread,
Mar 16, 2021, 7:19:06 PM3/16/21
to paskr...@gmail.com, syzkall...@googlegroups.com
Hello,

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

BUG: memory leak
unreferenced object 0xffff8881255461c0 (size 64):
comm "kworker/1:8", pid 10491, jiffies 4294944833 (age 14.160s)
hex dump (first 32 bytes):
40 cb 5e 25 81 88 ff ff c0 c9 5e 25 81 88 ff ff @.^%......^%....
00 66 52 25 81 88 ff ff 80 c1 5e 25 81 88 ff ff .fR%......^%....
backtrace:
[<ffffffff830434e1>] kmalloc_array.constprop.0+0x41/0x60 include/linux/slab.h:594
[<ffffffff83044f42>] kcalloc include/linux/slab.h:623 [inline]
[<ffffffff83044f42>] em28xx_alloc_urbs+0x102/0x590 drivers/media/usb/em28xx/em28xx-core.c:930
[<ffffffff84270e75>] em28xx_dvb_init drivers/media/usb/em28xx/em28xx-dvb.c:1517 [inline]
[<ffffffff84270e75>] em28xx_dvb_init.cold+0xa3/0x2bb1 drivers/media/usb/em28xx/em28xx-dvb.c:1483
[<ffffffff8304571b>] em28xx_init_extension+0x9b/0xe0 drivers/media/usb/em28xx/em28xx-core.c:1132
[<ffffffff83047523>] request_module_async+0x33/0x40 drivers/media/usb/em28xx/em28xx-cards.c:3406
[<ffffffff812591c9>] process_one_work+0x2c9/0x600 kernel/workqueue.c:2275
[<ffffffff81259d5b>] process_scheduled_works kernel/workqueue.c:2337 [inline]
[<ffffffff81259d5b>] worker_thread+0x2fb/0x5d0 kernel/workqueue.c:2426
[<ffffffff812611c8>] kthread+0x178/0x1b0 kernel/kthread.c:292
[<ffffffff8100227f>] ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:294

BUG: memory leak
unreferenced object 0xffff888125546300 (size 64):
comm "kworker/1:8", pid 10491, jiffies 4294944833 (age 14.160s)
hex dump (first 32 bytes):
00 00 6f 25 81 88 ff ff 00 00 70 25 81 88 ff ff ..o%......p%....
00 00 71 25 81 88 ff ff 00 00 72 25 81 88 ff ff ..q%......r%....
backtrace:
[<ffffffff830434e1>] kmalloc_array.constprop.0+0x41/0x60 include/linux/slab.h:594
[<ffffffff83044f5c>] kcalloc include/linux/slab.h:623 [inline]
[<ffffffff83044f5c>] em28xx_alloc_urbs+0x11c/0x590 drivers/media/usb/em28xx/em28xx-core.c:934
[<ffffffff84270e75>] em28xx_dvb_init drivers/media/usb/em28xx/em28xx-dvb.c:1517 [inline]
[<ffffffff84270e75>] em28xx_dvb_init.cold+0xa3/0x2bb1 drivers/media/usb/em28xx/em28xx-dvb.c:1483
[<ffffffff8304571b>] em28xx_init_extension+0x9b/0xe0 drivers/media/usb/em28xx/em28xx-core.c:1132
[<ffffffff83047523>] request_module_async+0x33/0x40 drivers/media/usb/em28xx/em28xx-cards.c:3406
[<ffffffff812591c9>] process_one_work+0x2c9/0x600 kernel/workqueue.c:2275
[<ffffffff81259d5b>] process_scheduled_works kernel/workqueue.c:2337 [inline]
[<ffffffff81259d5b>] worker_thread+0x2fb/0x5d0 kernel/workqueue.c:2426
[<ffffffff812611c8>] kthread+0x178/0x1b0 kernel/kthread.c:292
[<ffffffff8100227f>] ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:294

BUG: memory leak
unreferenced object 0xffff8881255ecb40 (size 192):
comm "kworker/1:8", pid 10491, jiffies 4294944833 (age 14.160s)
hex dump (first 32 bytes):
01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 58 cb 5e 25 81 88 ff ff ........X.^%....
backtrace:
[<ffffffff82b96576>] kmalloc include/linux/slab.h:559 [inline]
[<ffffffff82b96576>] usb_alloc_urb+0x66/0xe0 drivers/usb/core/urb.c:74
[<ffffffff830450a4>] em28xx_alloc_urbs+0x264/0x590 drivers/media/usb/em28xx/em28xx-core.c:952
[<ffffffff84270e75>] em28xx_dvb_init drivers/media/usb/em28xx/em28xx-dvb.c:1517 [inline]
[<ffffffff84270e75>] em28xx_dvb_init.cold+0xa3/0x2bb1 drivers/media/usb/em28xx/em28xx-dvb.c:1483
[<ffffffff8304571b>] em28xx_init_extension+0x9b/0xe0 drivers/media/usb/em28xx/em28xx-core.c:1132
[<ffffffff83047523>] request_module_async+0x33/0x40 drivers/media/usb/em28xx/em28xx-cards.c:3406
[<ffffffff812591c9>] process_one_work+0x2c9/0x600 kernel/workqueue.c:2275
[<ffffffff81259d5b>] process_scheduled_works kernel/workqueue.c:2337 [inline]
[<ffffffff81259d5b>] worker_thread+0x2fb/0x5d0 kernel/workqueue.c:2426
[<ffffffff812611c8>] kthread+0x178/0x1b0 kernel/kthread.c:292
[<ffffffff8100227f>] ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:294

BUG: memory leak
unreferenced object 0xffff8881255ec9c0 (size 192):
comm "kworker/1:8", pid 10491, jiffies 4294944833 (age 14.160s)
hex dump (first 32 bytes):
01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 d8 c9 5e 25 81 88 ff ff ..........^%....
backtrace:
[<ffffffff82b96576>] kmalloc include/linux/slab.h:559 [inline]
[<ffffffff82b96576>] usb_alloc_urb+0x66/0xe0 drivers/usb/core/urb.c:74
[<ffffffff830450a4>] em28xx_alloc_urbs+0x264/0x590 drivers/media/usb/em28xx/em28xx-core.c:952
[<ffffffff84270e75>] em28xx_dvb_init drivers/media/usb/em28xx/em28xx-dvb.c:1517 [inline]
[<ffffffff84270e75>] em28xx_dvb_init.cold+0xa3/0x2bb1 drivers/media/usb/em28xx/em28xx-dvb.c:1483
[<ffffffff8304571b>] em28xx_init_extension+0x9b/0xe0 drivers/media/usb/em28xx/em28xx-core.c:1132
[<ffffffff83047523>] request_module_async+0x33/0x40 drivers/media/usb/em28xx/em28xx-cards.c:3406
[<ffffffff812591c9>] process_one_work+0x2c9/0x600 kernel/workqueue.c:2275
[<ffffffff81259d5b>] process_scheduled_works kernel/workqueue.c:2337 [inline]
[<ffffffff81259d5b>] worker_thread+0x2fb/0x5d0 kernel/workqueue.c:2426
[<ffffffff812611c8>] kthread+0x178/0x1b0 kernel/kthread.c:292
[<ffffffff8100227f>] ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:294

BUG: memory leak
unreferenced object 0xffff888125526600 (size 192):
comm "kworker/1:8", pid 10491, jiffies 4294944833 (age 14.160s)
hex dump (first 32 bytes):
01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 18 66 52 25 81 88 ff ff .........fR%....
backtrace:
[<ffffffff82b96576>] kmalloc include/linux/slab.h:559 [inline]
[<ffffffff82b96576>] usb_alloc_urb+0x66/0xe0 drivers/usb/core/urb.c:74
[<ffffffff830450a4>] em28xx_alloc_urbs+0x264/0x590 drivers/media/usb/em28xx/em28xx-core.c:952
[<ffffffff84270e75>] em28xx_dvb_init drivers/media/usb/em28xx/em28xx-dvb.c:1517 [inline]
[<ffffffff84270e75>] em28xx_dvb_init.cold+0xa3/0x2bb1 drivers/media/usb/em28xx/em28xx-dvb.c:1483
[<ffffffff8304571b>] em28xx_init_extension+0x9b/0xe0 drivers/media/usb/em28xx/em28xx-core.c:1132
[<ffffffff83047523>] request_module_async+0x33/0x40 drivers/media/usb/em28xx/em28xx-cards.c:3406
[<ffffffff812591c9>] process_one_work+0x2c9/0x600 kernel/workqueue.c:2275
[<ffffffff81259d5b>] process_scheduled_works kernel/workqueue.c:2337 [inline]
[<ffffffff81259d5b>] worker_thread+0x2fb/0x5d0 kernel/workqueue.c:2426
[<ffffffff812611c8>] kthread+0x178/0x1b0 kernel/kthread.c:292
[<ffffffff8100227f>] ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:294



Tested on:

commit: 94bc67ec media: usb: fix memory leak in em28xx_alloc_urbs
git tree: https://linux.googlesource.com/linux/kernel/git/torvalds/linux refs/changes/36/9236/1
console output: https://syzkaller.appspot.com/x/log.txt?x=15f279e6d00000
kernel config: https://syzkaller.appspot.com/x/.config?x=7338191dd48fd062
dashboard link: https://syzkaller.appspot.com/bug?extid=889397c820fa56adf25d
compiler:

Reply all
Reply to author
Forward
0 new messages