• Liu Shixin's avatar
    ubifs: Fix memory leak in ubifs_sysfs_init() · 203a55f0
    Liu Shixin authored
    When insmod ubifs.ko, a kmemleak reported as below:
    
     unreferenced object 0xffff88817fb1a780 (size 8):
       comm "insmod", pid 25265, jiffies 4295239702 (age 100.130s)
       hex dump (first 8 bytes):
         75 62 69 66 73 00 ff ff                          ubifs...
       backtrace:
         [<ffffffff81b3fc4c>] slab_post_alloc_hook+0x9c/0x3c0
         [<ffffffff81b44bf3>] __kmalloc_track_caller+0x183/0x410
         [<ffffffff8198d3da>] kstrdup+0x3a/0x80
         [<ffffffff8198d486>] kstrdup_const+0x66/0x80
         [<ffffffff83989325>] kvasprintf_const+0x155/0x190
         [<ffffffff83bf55bb>] kobject_set_name_vargs+0x5b/0x150
         [<ffffffff83bf576b>] kobject_set_name+0xbb/0xf0
         [<ffffffff8100204c>] do_one_initcall+0x14c/0x5a0
         [<ffffffff8157e380>] do_init_module+0x1f0/0x660
         [<ffffffff815857be>] load_module+0x6d7e/0x7590
         [<ffffffff8158644f>] __do_sys_finit_module+0x19f/0x230
         [<ffffffff815866b3>] __x64_sys_finit_module+0x73/0xb0
         [<ffffffff88c98e85>] do_syscall_64+0x35/0x80
         [<ffffffff88e00087>] entry_SYSCALL_64_after_hwframe+0x63/0xcd
    
    When kset_register() failed, we should call kset_put to cleanup it.
    
    Fixes: 2e3cbf42 ("ubifs: Export filesystem error counters")
    Signed-off-by: default avatarLiu Shixin <liushixin2@huawei.com>
    Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
    203a55f0
sysfs.c 3.23 KB