mirror of
https://github.com/hardkernel/linux.git
synced 2026-03-24 19:40:21 +09:00
UBUNTU: ubuntu: overlayfs -- ovl: switch to __inode_permission()
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> Signed-off-by: Andy Whitcroft <apw@canonical.com>
This commit is contained in:
committed by
Tim Gardner
parent
12de1d2f69
commit
fd49c0a77e
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user