diff --git a/main.c b/main.c index e6d167b..e3b7c2d 100644 --- a/main.c +++ b/main.c @@ -60,6 +60,7 @@ #define ATTR_TIMEOUT 1000000000.0 #define ENTRY_TIMEOUT 1000000000.0 +#define XATTR_PREFIX "user.fuseoverlayfs" #define REDIRECT_XATTR "user.fuseoverlayfs.redirect" #define NODE_TO_INODE(x) ((fuse_ino_t) x) @@ -1897,6 +1898,12 @@ ovl_setxattr (fuse_req_t req, fuse_ino_t ino, const char *name, fprintf (stderr, "ovl_setxattr(ino=%" PRIu64 "s, name=%s, value=%s, size=%zu, flags=%d)\n", ino, name, value, size, flags); + if (has_prefix (name, XATTR_PREFIX)) + { + fuse_reply_err (req, EPERM); + return; + } + node = do_lookup_file (lo, ino, NULL); if (node == NULL) {