From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932117AbdJUNjC (ORCPT ); Sat, 21 Oct 2017 09:39:02 -0400 Received: from smtp-sh2.infomaniak.ch ([128.65.195.6]:35433 "EHLO smtp-sh2.infomaniak.ch" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932081AbdJUNjB (ORCPT ); Sat, 21 Oct 2017 09:39:01 -0400 From: Nicolas Belouin To: Dave Kleikamp , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, jfs-discussion@lists.sourceforge.net Cc: Nicolas Belouin Subject: [PATCH] fs: fix xattr permission checking error Date: Sat, 21 Oct 2017 15:39:47 +0200 Message-Id: <20171021133947.19935-1-nicolas@belouin.fr> X-Mailer: git-send-email 2.14.2 X-Antivirus: Dr.Web (R) for Unix mail servers drweb plugin ver.6.0.2.8 X-Antivirus-Code: 0x100000 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Fix an issue making trusted xattr world readable and other cap_sys_admin only Signed-off-by: Nicolas Belouin --- 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