lkml.org 
[lkml]   [2020]   [Feb]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.5 409/542] f2fs: fix memleak of kobject
    Date
    From: Chao Yu <yuchao0@huawei.com>

    [ Upstream commit fe396ad8e7526f059f7b8c7290d33a1b84adacab ]

    If kobject_init_and_add() failed, caller needs to invoke kobject_put()
    to release kobject explicitly.

    Signed-off-by: Chao Yu <yuchao0@huawei.com>
    Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    fs/f2fs/sysfs.c | 11 ++++++++---
    1 file changed, 8 insertions(+), 3 deletions(-)

    diff --git a/fs/f2fs/sysfs.c b/fs/f2fs/sysfs.c
    index 5963316f391a5..e79c86b8553a5 100644
    --- a/fs/f2fs/sysfs.c
    +++ b/fs/f2fs/sysfs.c
    @@ -733,10 +733,12 @@ int __init f2fs_init_sysfs(void)

    ret = kobject_init_and_add(&f2fs_feat, &f2fs_feat_ktype,
    NULL, "features");
    - if (ret)
    + if (ret) {
    + kobject_put(&f2fs_feat);
    kset_unregister(&f2fs_kset);
    - else
    + } else {
    f2fs_proc_root = proc_mkdir("fs/f2fs", NULL);
    + }
    return ret;
    }

    @@ -757,8 +759,11 @@ int f2fs_register_sysfs(struct f2fs_sb_info *sbi)
    init_completion(&sbi->s_kobj_unregister);
    err = kobject_init_and_add(&sbi->s_kobj, &f2fs_sb_ktype, NULL,
    "%s", sb->s_id);
    - if (err)
    + if (err) {
    + kobject_put(&sbi->s_kobj);
    + wait_for_completion(&sbi->s_kobj_unregister);
    return err;
    + }

    if (f2fs_proc_root)
    sbi->s_proc = proc_mkdir(sb->s_id, f2fs_proc_root);
    --
    2.20.1
    \
     
     \ /
      Last update: 2020-02-14 16:59    [W:4.258 / U:1.072 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site