Subject: [syzbot] memory leak in hwsim_add_one

From: syzbot <[email-masked]>
Date: Mon, 07 Jun 2021 08:45:20 -0700

Hello,

syzbot found the following issue on:

HEAD commit:    9d32fa5d Merge tag 'net-5.13-rc5' of git://git.kernel.org/..
git tree:       upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=15dee1bbd00000
kernel config:  https://syzkaller.appspot.com/x/.config?x=de8efb0998945e75
dashboard link: https://syzkaller.appspot.com/bug?extid=b80c9959009a9325cdff
syz repro:      https://syzkaller.appspot.com/x/repro.syz?x=1706bbb5d00000
C reproducer:   https://syzkaller.appspot.com/x/repro.c?x=14d708afd00000

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: [email-masked]

Warning: Permanently added '10.128.1.19' (ECDSA) to the list of known hosts.
executing program
BUG: memory leak
unreferenced object 0xffff8881020ec480 (size 64):
  comm "swapper/0", pid 1, jiffies 4294937719 (age 53.000s)
  hex dump (first 32 bytes):
    60 5d 7c 06 81 88 ff ff c0 17 65 04 81 88 ff ff  `]|.......e.....
    80 35 12 42 81 88 ff ff 80 35 12 42 81 88 ff ff  .5.B.....5.B....
  backtrace:
    [<ffffffff82b09f12>] kmalloc include/linux/slab.h:556 [inline]
    [<ffffffff82b09f12>] kzalloc include/linux/slab.h:686 [inline]
    [<ffffffff82b09f12>] hwsim_alloc_edge.constprop.0+0x22/0x80 drivers/net/ieee802154/mac802154_hwsim.c:385
    [<ffffffff82b0b0f3>] hwsim_subscribe_all_others drivers/net/ieee802154/mac802154_hwsim.c:709 [inline]
    [<ffffffff82b0b0f3>] hwsim_add_one+0x3b3/0x640 drivers/net/ieee802154/mac802154_hwsim.c:802
    [<ffffffff82b0b3c4>] hwsim_probe+0x44/0xd0 drivers/net/ieee802154/mac802154_hwsim.c:848
    [<ffffffff82628bf1>] platform_probe+0x81/0x120 drivers/base/platform.c:1447
    [<ffffffff82625679>] really_probe+0x159/0x500 drivers/base/dd.c:576
    [<ffffffff82625aab>] driver_probe_device+0x8b/0x100 drivers/base/dd.c:763
    [<ffffffff82626325>] device_driver_attach+0x105/0x110 drivers/base/dd.c:1039
    [<ffffffff826263d1>] __driver_attach drivers/base/dd.c:1117 [inline]
    [<ffffffff826263d1>] __driver_attach+0xa1/0x140 drivers/base/dd.c:1070
    [<ffffffff82622459>] bus_for_each_dev+0xa9/0x100 drivers/base/bus.c:305
    [<ffffffff826244e0>] bus_add_driver+0x160/0x280 drivers/base/bus.c:622
    [<ffffffff82627233>] driver_register+0xc3/0x150 drivers/base/driver.c:171
    [<ffffffff874fa3dc>] hwsim_init_module+0xae/0x107 drivers/net/ieee802154/mac802154_hwsim.c:899
    [<ffffffff81001083>] do_one_initcall+0x63/0x2e0 init/main.c:1249
    [<ffffffff87489873>] do_initcall_level init/main.c:1322 [inline]
    [<ffffffff87489873>] do_initcalls init/main.c:1338 [inline]
    [<ffffffff87489873>] do_basic_setup init/main.c:1358 [inline]
    [<ffffffff87489873>] kernel_init_freeable+0x1f4/0x26e init/main.c:1560
    [<ffffffff84359255>] kernel_init+0xc/0x1a7 init/main.c:1447
    [<ffffffff810022ef>] ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:294

BUG: memory leak
unreferenced object 0xffff8881046517c0 (size 32):
  comm "swapper/0", pid 1, jiffies 4294937719 (age 53.000s)
  hex dump (first 32 bytes):
    ff 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:
    [<ffffffff82b09f35>] kmalloc include/linux/slab.h:556 [inline]
    [<ffffffff82b09f35>] kzalloc include/linux/slab.h:686 [inline]
    [<ffffffff82b09f35>] hwsim_alloc_edge.constprop.0+0x45/0x80 drivers/net/ieee802154/mac802154_hwsim.c:389
    [<ffffffff82b0b0f3>] hwsim_subscribe_all_others drivers/net/ieee802154/mac802154_hwsim.c:709 [inline]
    [<ffffffff82b0b0f3>] hwsim_add_one+0x3b3/0x640 drivers/net/ieee802154/mac802154_hwsim.c:802
    [<ffffffff82b0b3c4>] hwsim_probe+0x44/0xd0 drivers/net/ieee802154/mac802154_hwsim.c:848
    [<ffffffff82628bf1>] platform_probe+0x81/0x120 drivers/base/platform.c:1447
    [<ffffffff82625679>] really_probe+0x159/0x500 drivers/base/dd.c:576
    [<ffffffff82625aab>] driver_probe_device+0x8b/0x100 drivers/base/dd.c:763
    [<ffffffff82626325>] device_driver_attach+0x105/0x110 drivers/base/dd.c:1039
    [<ffffffff826263d1>] __driver_attach drivers/base/dd.c:1117 [inline]
    [<ffffffff826263d1>] __driver_attach+0xa1/0x140 drivers/base/dd.c:1070
    [<ffffffff82622459>] bus_for_each_dev+0xa9/0x100 drivers/base/bus.c:305
    [<ffffffff826244e0>] bus_add_driver+0x160/0x280 drivers/base/bus.c:622
    [<ffffffff82627233>] driver_register+0xc3/0x150 drivers/base/driver.c:171
    [<ffffffff874fa3dc>] hwsim_init_module+0xae/0x107 drivers/net/ieee802154/mac802154_hwsim.c:899
    [<ffffffff81001083>] do_one_initcall+0x63/0x2e0 init/main.c:1249
    [<ffffffff87489873>] do_initcall_level init/main.c:1322 [inline]
    [<ffffffff87489873>] do_initcalls init/main.c:1338 [inline]
    [<ffffffff87489873>] do_basic_setup init/main.c:1358 [inline]
    [<ffffffff87489873>] kernel_init_freeable+0x1f4/0x26e init/main.c:1560
    [<ffffffff84359255>] kernel_init+0xc/0x1a7 init/main.c:1447
    [<ffffffff810022ef>] 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 [email-masked].

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