From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from userp1040.oracle.com ([156.151.31.81]:38244 "EHLO userp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754623AbdBUSPQ (ORCPT ); Tue, 21 Feb 2017 13:15:16 -0500 Date: Tue, 21 Feb 2017 21:14:46 +0300 From: Dan Carpenter To: seth.forshee@canonical.com Cc: linux-fsdevel@vger.kernel.org Subject: [bug report] fuse: Add posix ACL support Message-ID: <20170221181446.GA27766@mwanda> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Sender: linux-fsdevel-owner@vger.kernel.org List-ID: Hello Seth Forshee, The patch 60bcc88ad185: "fuse: Add posix ACL support" from Aug 29, 2016, leads to the following static checker warning: fs/fuse/acl.c:39 fuse_get_acl() warn: we tested 'fc->no_getxattr' before and it was 'false' fs/fuse/acl.c 13 14 struct posix_acl *fuse_get_acl(struct inode *inode, int type) 15 { 16 struct fuse_conn *fc = get_fuse_conn(inode); 17 int size; 18 const char *name; 19 void *value = NULL; 20 struct posix_acl *acl; 21 22 if (!fc->posix_acl || fc->no_getxattr) ^^^^^^^^^^^^^^^ If this is set we return NULL. 23 return NULL; 24 25 if (type == ACL_TYPE_ACCESS) 26 name = XATTR_NAME_POSIX_ACL_ACCESS; 27 else if (type == ACL_TYPE_DEFAULT) 28 name = XATTR_NAME_POSIX_ACL_DEFAULT; 29 else 30 return ERR_PTR(-EOPNOTSUPP); 31 32 value = kmalloc(PAGE_SIZE, GFP_KERNEL); 33 if (!value) 34 return ERR_PTR(-ENOMEM); 35 size = fuse_getxattr(inode, name, value, PAGE_SIZE); 36 if (size > 0) 37 acl = posix_acl_from_xattr(&init_user_ns, value, size); 38 else if ((size == 0) || (size == -ENODATA) || 39 (size == -EOPNOTSUPP && fc->no_getxattr)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ So this can't happen. 40 acl = NULL; 41 else if (size == -ERANGE) 42 acl = ERR_PTR(-E2BIG); 43 else 44 acl = ERR_PTR(size); 45 46 kfree(value); 47 return acl; 48 } regards, dan carpenter