diff options
author | Miklos Szeredi <mszeredi@redhat.com> | 2020-12-14 15:26:14 +0100 |
---|---|---|
committer | Miklos Szeredi <mszeredi@redhat.com> | 2020-12-14 15:26:14 +0100 |
commit | 2d2f2d7322ff43e0fe92bf8cccdc0b09449bf2e1 (patch) | |
tree | b2977931c4cbb8b17da210f07525800e3a53213b /fs/overlayfs/util.c | |
parent | 82a763e61e2b601309d696d4fa514c77d64ee1be (diff) | |
download | linux-2d2f2d7322ff43e0fe92bf8cccdc0b09449bf2e1.tar.bz2 |
ovl: user xattr
Optionally allow using "user.overlay." namespace instead of
"trusted.overlay."
This is necessary for overlayfs to be able to be mounted in an unprivileged
namepsace.
Make the option explicit, since it makes the filesystem format be
incompatible.
Disable redirect_dir and metacopy options, because these would allow
privilege escalation through direct manipulation of the
"user.overlay.redirect" or "user.overlay.metacopy" xattrs.
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Reviewed-by: Amir Goldstein <amir73il@gmail.com>
Diffstat (limited to 'fs/overlayfs/util.c')
-rw-r--r-- | fs/overlayfs/util.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/overlayfs/util.c b/fs/overlayfs/util.c index ced63c79e9dd..e63e0587535f 100644 --- a/fs/overlayfs/util.c +++ b/fs/overlayfs/util.c @@ -585,9 +585,10 @@ bool ovl_check_dir_xattr(struct super_block *sb, struct dentry *dentry, #define OVL_XATTR_METACOPY_POSTFIX "metacopy" #define OVL_XATTR_TAB_ENTRY(x) \ - [x] = OVL_XATTR_PREFIX x ## _POSTFIX + [x] = { [false] = OVL_XATTR_TRUSTED_PREFIX x ## _POSTFIX, \ + [true] = OVL_XATTR_USER_PREFIX x ## _POSTFIX } -const char *ovl_xattr_table[] = { +const char *const ovl_xattr_table[][2] = { OVL_XATTR_TAB_ENTRY(OVL_XATTR_OPAQUE), OVL_XATTR_TAB_ENTRY(OVL_XATTR_REDIRECT), OVL_XATTR_TAB_ENTRY(OVL_XATTR_ORIGIN), |