lkml.org 
[lkml]   [2012]   [Aug]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 12/13] ovl: switch to __inode_permission()
    Date
    From: Andy Whitcroft <apw@canonical.com>

    When checking permissions on an overlayfs inode we do not take into
    account either device cgroup restrictions nor security permissions.
    This allows a user to mount an overlayfs layer over a restricted device
    directory and by pass those permissions to open otherwise restricted
    files.

    Switch over to __inode_permissions.

    Signed-off-by: Andy Whitcroft <apw@canonical.com>
    Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
    ---
    fs/overlayfs/inode.c | 12 +-----------
    1 files changed, 1 insertions(+), 11 deletions(-)

    diff --git a/fs/overlayfs/inode.c b/fs/overlayfs/inode.c
    index e854720..f3a534f 100644
    --- a/fs/overlayfs/inode.c
    +++ b/fs/overlayfs/inode.c
    @@ -100,19 +100,9 @@ int ovl_permission(struct inode *inode, int mask)
    if (is_upper && !IS_RDONLY(inode) && IS_RDONLY(realinode) &&
    (S_ISREG(mode) || S_ISDIR(mode) || S_ISLNK(mode)))
    goto out_dput;
    -
    - /*
    - * Nobody gets write access to an immutable file.
    - */
    - err = -EACCES;
    - if (IS_IMMUTABLE(realinode))
    - goto out_dput;
    }

    - if (realinode->i_op->permission)
    - err = realinode->i_op->permission(realinode, mask);
    - else
    - err = generic_permission(realinode, mask);
    + err = __inode_permission(realinode, mask);
    out_dput:
    dput(alias);
    return err;
    --
    1.7.7


    \
     
     \ /
      Last update: 2012-08-15 18:22    [W:2.262 / U:0.348 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site