• A
    fix cgroup_do_mount() handling of failure exits · dc4def77
    Al Viro 提交于
    mainline inclusion
    from mainline-5.1-rc1
    commit 399504e21a10be16dd1408ba0147367d9d82a10c
    category: bugfix
    bugzilla: 11147
    CVE: NA
    
    -------------------------------------------------
    same story as with last May fixes in sysfs (7b745a4e
    "unfuck sysfs_mount()"); new_sb is left uninitialized
    in case of early errors in kernfs_mount_ns() and papering
    over it by treating any error from kernfs_mount_ns() as
    equivalent to !new_ns ends up conflating the cases when
    objects had never been transferred to a superblock with
    ones when that has happened and resulting new superblock
    had been dropped.  Easily fixed (same way as in sysfs
    case).  Additionally, there's a superblock leak on
    kernfs_node_dentry() failure *and* a dentry leak inside
    kernfs_node_dentry() itself - the latter on probably
    impossible errors, but the former not impossible to trigger
    (as the matter of fact, injecting allocation failures
    at that point *does* trigger it).
    
    Cc: stable@kernel.org
    Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
    (cherry picked from commit 399504e21a10be16dd1408ba0147367d9d82a10c)
    Signed-off-by: NZhen Lei <thunder.leizhen@huawei.com>
    Reviewed-by: NYang Yingliang <yangyingliang@huawei.com>
    Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
    dc4def77
mount.c 10.6 KB