• Al Viro's avatar
    fix cgroup_do_mount() handling of failure exits · 399504e2
    Al Viro authored
    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: default avatarAl Viro <viro@zeniv.linux.org.uk>
    399504e2
mount.c 10.7 KB