• Zhengchao Shao's avatar
    netdevsim: fix memory leak in nsim_bus_dev_new() · cf2010aa
    Zhengchao Shao authored
    If device_register() failed in nsim_bus_dev_new(), the value of reference
    in nsim_bus_dev->dev is 1. obj->name in nsim_bus_dev->dev will not be
    released.
    
    unreferenced object 0xffff88810352c480 (size 16):
      comm "echo", pid 5691, jiffies 4294945921 (age 133.270s)
      hex dump (first 16 bytes):
        6e 65 74 64 65 76 73 69 6d 31 00 00 00 00 00 00  netdevsim1......
      backtrace:
        [<000000005e2e5e26>] __kmalloc_node_track_caller+0x3a/0xb0
        [<0000000094ca4fc8>] kvasprintf+0xc3/0x160
        [<00000000aad09bcc>] kvasprintf_const+0x55/0x180
        [<000000009bac868d>] kobject_set_name_vargs+0x56/0x150
        [<000000007c1a5d70>] dev_set_name+0xbb/0xf0
        [<00000000ad0d126b>] device_add+0x1f8/0x1cb0
        [<00000000c222ae24>] new_device_store+0x3b6/0x5e0
        [<0000000043593421>] bus_attr_store+0x72/0xa0
        [<00000000cbb1833a>] sysfs_kf_write+0x106/0x160
        [<00000000d0dedb8a>] kernfs_fop_write_iter+0x3a8/0x5a0
        [<00000000770b66e2>] vfs_write+0x8f0/0xc80
        [<0000000078bb39be>] ksys_write+0x106/0x210
        [<00000000005e55a4>] do_syscall_64+0x35/0x80
        [<00000000eaa40bbc>] entry_SYSCALL_64_after_hwframe+0x46/0xb0
    
    Fixes: 40e4fe4c ("netdevsim: move device registration and related code to bus.c")
    Signed-off-by: default avatarZhengchao Shao <shaozhengchao@huawei.com>
    Link: https://lore.kernel.org/r/20221026015405.128795-1-shaozhengchao@huawei.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    cf2010aa
bus.c 8.35 KB