• Eric W. Biederman's avatar
    mnt: Update fs_fully_visible to test for permanently empty directories · 5ac118ee
    Eric W. Biederman authored
    commit 7236c85e upstream.
    
    fs_fully_visible attempts to make fresh mounts of proc and sysfs give
    the mounter no more access to proc and sysfs than if they could have
    by creating a bind mount.  One aspect of proc and sysfs that makes
    this particularly tricky is that there are other filesystems that
    typically mount on top of proc and sysfs.  As those filesystems are
    mounted on empty directories in practice it is safe to ignore them.
    However testing to ensure filesystems are mounted on empty directories
    has not been something the in kernel data structures have supported so
    the current test for an empty directory which checks to see
    if nlink <= 2 is a bit lacking.
    
    proc and sysfs have recently been modified to use the new empty_dir
    infrastructure to create all of their dedicated mount points.  Instead
    of testing for S_ISDIR(inode->i_mode) && i_nlink <= 2 to see if a
    directory is empty, test for is_empty_dir_inode(inode).  That small
    change guaranteess mounts found on proc and sysfs really are safe to
    ignore, because the directories are not only empty but nothing can
    ever be added to them.  This guarantees there is nothing to worry
    about when mounting proc and sysfs.
    Signed-off-by: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: default avatarLuis Henriques <luis.henriques@canonical.com>
    5ac118ee
namespace.c 76.3 KB