Re: memory leak in cfserl_create
From: syzbot
Date: Tue Sep 17 2019 - 05:43:10 EST
syzbot has found a reproducer for the following crash on:
HEAD commit: cef72982 Merge tag 'armsoc-dt' of git://git.kernel.org/pub..
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=1042ac45600000
kernel config: https://syzkaller.appspot.com/x/.config?x=779aef2b86e19d75
dashboard link: https://syzkaller.appspot.com/bug?extid=7ec324747ce876a29db6
compiler: gcc (GCC) 9.0.0 20181231 (experimental)
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=16ef2331600000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=17f0c091600000
IMPORTANT: if you fix the bug, please add the following tag to the commit:
Reported-by: syzbot+7ec324747ce876a29db6@xxxxxxxxxxxxxxxxxxxxxxxxx
BUG: memory leak
unreferenced object 0xffff88810a3b7380 (size 128):
comm "syz-executor868", pid 7100, jiffies 4294943513 (age 21.740s)
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
backtrace:
[<000000004f492e65>] kmemleak_alloc_recursive
include/linux/kmemleak.h:43 [inline]
[<000000004f492e65>] slab_post_alloc_hook mm/slab.h:522 [inline]
[<000000004f492e65>] slab_alloc mm/slab.c:3319 [inline]
[<000000004f492e65>] kmem_cache_alloc_trace+0x145/0x2c0 mm/slab.c:3548
[<00000000478a63c3>] kmalloc include/linux/slab.h:552 [inline]
[<00000000478a63c3>] kzalloc include/linux/slab.h:748 [inline]
[<00000000478a63c3>] cfserl_create+0x24/0x76 net/caif/cfserl.c:36
[<0000000097ca7138>] caif_device_notify+0x347/0x3bc
net/caif/caif_dev.c:388
[<0000000078bf2b15>] notifier_call_chain+0x66/0xb0 kernel/notifier.c:95
[<000000001a557d7e>] __raw_notifier_call_chain kernel/notifier.c:396
[inline]
[<000000001a557d7e>] raw_notifier_call_chain+0x2e/0x40
kernel/notifier.c:403
[<00000000de93bbde>] call_netdevice_notifiers_info+0x33/0x70
net/core/dev.c:1749
[<0000000004467db0>] call_netdevice_notifiers_extack
net/core/dev.c:1761 [inline]
[<0000000004467db0>] call_netdevice_notifiers net/core/dev.c:1775
[inline]
[<0000000004467db0>] register_netdevice+0x445/0x610 net/core/dev.c:8757
[<000000007e97ac10>] ldisc_open+0x1f7/0x350
drivers/net/caif/caif_serial.c:359
[<000000003eb33d8f>] tty_ldisc_open.isra.0+0x44/0x70
drivers/tty/tty_ldisc.c:469
[<00000000ded1208b>] tty_set_ldisc+0x149/0x240
drivers/tty/tty_ldisc.c:596
[<00000000df974937>] tiocsetd drivers/tty/tty_io.c:2334 [inline]
[<00000000df974937>] tty_ioctl+0x366/0xa30 drivers/tty/tty_io.c:2594
[<00000000739f048c>] vfs_ioctl fs/ioctl.c:46 [inline]
[<00000000739f048c>] file_ioctl fs/ioctl.c:509 [inline]
[<00000000739f048c>] do_vfs_ioctl+0x62a/0x810 fs/ioctl.c:696
[<00000000e122cb0c>] ksys_ioctl+0x86/0xb0 fs/ioctl.c:713
[<0000000067a2ba29>] __do_sys_ioctl fs/ioctl.c:720 [inline]
[<0000000067a2ba29>] __se_sys_ioctl fs/ioctl.c:718 [inline]
[<0000000067a2ba29>] __x64_sys_ioctl+0x1e/0x30 fs/ioctl.c:718
[<0000000071a2e1c5>] do_syscall_64+0x76/0x1a0
arch/x86/entry/common.c:296
[<00000000c342e2c0>] entry_SYSCALL_64_after_hwframe+0x44/0xa9
BUG: memory leak
unreferenced object 0xffff88810a3b7400 (size 128):
comm "syz-executor868", pid 7101, jiffies 4294943519 (age 21.680s)
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
backtrace:
[<000000004f492e65>] kmemleak_alloc_recursive
include/linux/kmemleak.h:43 [inline]
[<000000004f492e65>] slab_post_alloc_hook mm/slab.h:522 [inline]
[<000000004f492e65>] slab_alloc mm/slab.c:3319 [inline]
[<000000004f492e65>] kmem_cache_alloc_trace+0x145/0x2c0 mm/slab.c:3548
[<00000000478a63c3>] kmalloc include/linux/slab.h:552 [inline]
[<00000000478a63c3>] kzalloc include/linux/slab.h:748 [inline]
[<00000000478a63c3>] cfserl_create+0x24/0x76 net/caif/cfserl.c:36
[<0000000097ca7138>] caif_device_notify+0x347/0x3bc
net/caif/caif_dev.c:388
[<0000000078bf2b15>] notifier_call_chain+0x66/0xb0 kernel/notifier.c:95
[<000000001a557d7e>] __raw_notifier_call_chain kernel/notifier.c:396
[inline]
[<000000001a557d7e>] raw_notifier_call_chain+0x2e/0x40
kernel/notifier.c:403
[<00000000de93bbde>] call_netdevice_notifiers_info+0x33/0x70
net/core/dev.c:1749
[<0000000004467db0>] call_netdevice_notifiers_extack
net/core/dev.c:1761 [inline]
[<0000000004467db0>] call_netdevice_notifiers net/core/dev.c:1775
[inline]
[<0000000004467db0>] register_netdevice+0x445/0x610 net/core/dev.c:8757
[<000000007e97ac10>] ldisc_open+0x1f7/0x350
drivers/net/caif/caif_serial.c:359
[<000000003eb33d8f>] tty_ldisc_open.isra.0+0x44/0x70
drivers/tty/tty_ldisc.c:469
[<00000000ded1208b>] tty_set_ldisc+0x149/0x240
drivers/tty/tty_ldisc.c:596
[<00000000df974937>] tiocsetd drivers/tty/tty_io.c:2334 [inline]
[<00000000df974937>] tty_ioctl+0x366/0xa30 drivers/tty/tty_io.c:2594
[<00000000739f048c>] vfs_ioctl fs/ioctl.c:46 [inline]
[<00000000739f048c>] file_ioctl fs/ioctl.c:509 [inline]
[<00000000739f048c>] do_vfs_ioctl+0x62a/0x810 fs/ioctl.c:696
[<00000000e122cb0c>] ksys_ioctl+0x86/0xb0 fs/ioctl.c:713
[<0000000067a2ba29>] __do_sys_ioctl fs/ioctl.c:720 [inline]
[<0000000067a2ba29>] __se_sys_ioctl fs/ioctl.c:718 [inline]
[<0000000067a2ba29>] __x64_sys_ioctl+0x1e/0x30 fs/ioctl.c:718
[<0000000071a2e1c5>] do_syscall_64+0x76/0x1a0
arch/x86/entry/common.c:296
[<00000000c342e2c0>] entry_SYSCALL_64_after_hwframe+0x44/0xa9
BUG: memory leak
unreferenced object 0xffff88810a3b7780 (size 128):
comm "syz-executor868", pid 7138, jiffies 4294943524 (age 21.630s)
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
backtrace:
[<000000004f492e65>] kmemleak_alloc_recursive
include/linux/kmemleak.h:43 [inline]
[<000000004f492e65>] slab_post_alloc_hook mm/slab.h:522 [inline]
[<000000004f492e65>] slab_alloc mm/slab.c:3319 [inline]
[<000000004f492e65>] kmem_cache_alloc_trace+0x145/0x2c0 mm/slab.c:3548
[<00000000478a63c3>] kmalloc include/linux/slab.h:552 [inline]
[<00000000478a63c3>] kzalloc include/linux/slab.h:748 [inline]
[<00000000478a63c3>] cfserl_create+0x24/0x76 net/caif/cfserl.c:36
[<0000000097ca7138>] caif_device_notify+0x347/0x3bc
net/caif/caif_dev.c:388
[<0000000078bf2b15>] notifier_call_chain+0x66/0xb0 kernel/notifier.c:95
[<000000001a557d7e>] __raw_notifier_call_chain kernel/notifier.c:396
[inline]
[<000000001a557d7e>] raw_notifier_call_chain+0x2e/0x40
kernel/notifier.c:403
[<00000000de93bbde>] call_netdevice_notifiers_info+0x33/0x70
net/core/dev.c:1749
[<0000000004467db0>] call_netdevice_notifiers_extack
net/core/dev.c:1761 [inline]
[<0000000004467db0>] call_netdevice_notifiers net/core/dev.c:1775
[inline]
[<0000000004467db0>] register_netdevice+0x445/0x610 net/core/dev.c:8757
[<000000007e97ac10>] ldisc_open+0x1f7/0x350
drivers/net/caif/caif_serial.c:359
[<000000003eb33d8f>] tty_ldisc_open.isra.0+0x44/0x70
drivers/tty/tty_ldisc.c:469
[<00000000ded1208b>] tty_set_ldisc+0x149/0x240
drivers/tty/tty_ldisc.c:596
[<00000000df974937>] tiocsetd drivers/tty/tty_io.c:2334 [inline]
[<00000000df974937>] tty_ioctl+0x366/0xa30 drivers/tty/tty_io.c:2594
[<00000000739f048c>] vfs_ioctl fs/ioctl.c:46 [inline]
[<00000000739f048c>] file_ioctl fs/ioctl.c:509 [inline]
[<00000000739f048c>] do_vfs_ioctl+0x62a/0x810 fs/ioctl.c:696
[<00000000e122cb0c>] ksys_ioctl+0x86/0xb0 fs/ioctl.c:713
[<0000000067a2ba29>] __do_sys_ioctl fs/ioctl.c:720 [inline]
[<0000000067a2ba29>] __se_sys_ioctl fs/ioctl.c:718 [inline]
[<0000000067a2ba29>] __x64_sys_ioctl+0x1e/0x30 fs/ioctl.c:718
[<0000000071a2e1c5>] do_syscall_64+0x76/0x1a0
arch/x86/entry/common.c:296
[<00000000c342e2c0>] entry_SYSCALL_64_after_hwframe+0x44/0xa9
executing program
executing program
executing program
executing program