[PATCH] fs: fix xattr permission checking error

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Fix an issue making trusted xattr world readable and other
cap_sys_admin only

Signed-off-by: Nicolas Belouin <nicolas@xxxxxxxxxx>
---
 fs/hfsplus/xattr.c | 2 +-
 fs/jfs/xattr.c     | 5 ++---
 2 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/fs/hfsplus/xattr.c b/fs/hfsplus/xattr.c
index d37bb88dc746..ae03a19196ef 100644
--- a/fs/hfsplus/xattr.c
+++ b/fs/hfsplus/xattr.c
@@ -604,7 +604,7 @@ static inline int can_list(const char *xattr_name)
 	if (!xattr_name)
 		return 0;
 
-	return strncmp(xattr_name, XATTR_TRUSTED_PREFIX,
+	return !strncmp(xattr_name, XATTR_TRUSTED_PREFIX,
 			XATTR_TRUSTED_PREFIX_LEN) ||
 				capable(CAP_SYS_ADMIN);
 }
diff --git a/fs/jfs/xattr.c b/fs/jfs/xattr.c
index c60f3d32ee91..1c46573a96ed 100644
--- a/fs/jfs/xattr.c
+++ b/fs/jfs/xattr.c
@@ -858,9 +858,8 @@ ssize_t __jfs_getxattr(struct inode *inode, const char *name, void *data,
  */
 static inline int can_list(struct jfs_ea *ea)
 {
-	return (strncmp(ea->name, XATTR_TRUSTED_PREFIX,
-			    XATTR_TRUSTED_PREFIX_LEN) ||
-		capable(CAP_SYS_ADMIN));
+	return (!strncmp(ea->name, XATTR_TRUSTED_PREFIX,
+			 XATTR_TRUSTED_PREFIX_LEN) || capable(CAP_SYS_ADMIN));
 }
 
 ssize_t jfs_listxattr(struct dentry * dentry, char *data, size_t buf_size)
-- 
2.14.2




[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux