Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp4437987ybb; Tue, 7 Apr 2020 07:31:51 -0700 (PDT) X-Google-Smtp-Source: APiQypIlczpLDGFnzsDMtrUOBmKzRXLB7yxl9mKu4sKq+cXggvfgWSSnRYWqLpjZ8SPIPk+BX4KO X-Received: by 2002:aca:4b56:: with SMTP id y83mr1984324oia.142.1586269911721; Tue, 07 Apr 2020 07:31:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1586269911; cv=none; d=google.com; s=arc-20160816; b=pSiQpD5EbQsfdJ6eb7AZ57vUU22xxt0Lh0L172fpxrPaHqHuk53Jf7z81FlNXWQTxC Kj9ro/yfJPzZyecuHSk1xp8wi1bNGLPpscym6+qsYX1BHd7YdUivrgfgl/SCFO7zhCTa OIDKthtrlMH/POUe0lblBCsM1QDcssnNU5ziJh8llgHMBMc5ZZtqbr2B3x9xu07MU1ni 9kyKAInKw3UCt7WwBH67xAtHTSgU+/MQdQv5o36hqYiIk8/UUhVKZfFXBJi655Jrrs9m 7TmBwezhB+3vaVXcfwgOSRQNbV1B+E5YaQpmo9tK1yk+9s80miQFAyMH4G5TfRZgF+wK 9X/Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=7YgxQ8ndIh82f5IOzj94iX3mH1/qXysyq/F+6UrSIjM=; b=rQDeiqxpySW+gMKpIKYgVM2biLn+QTE7pYWY2MObEtCAlKXEyOuwcYDD7Q604cAdT8 82gwtd9NnEYhBoreBGzF6Ma5wrMga3sxVYQODK7MDOmM6XqD5LnmWQDkPteuu3UCQg/q EHKuQkG3QE5V6uPJOjsifrIGEqi0hMSpdNQQZH5e5AinfrNeI3Xd22cxRXbkI+LXLq9C ql6rpTyu4sWmriZalgonHXc6TwE2ki7dp5wNG4uKNqbLHNOLxDR6JHfhZ+rehli9Y8Cx aaRImECekMYAGAcXFFIbdTaN72/N07zhvTqO4CKOD4wo4lif5TmjOC/NyC8Cy7NIrRwE t9Qw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-nfs-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id n2si1198676oon.60.2020.04.07.07.31.29; Tue, 07 Apr 2020 07:31:51 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-nfs-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-nfs-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728573AbgDGObZ (ORCPT + 99 others); Tue, 7 Apr 2020 10:31:25 -0400 Received: from nibbler.cm4all.net ([82.165.145.151]:47576 "EHLO nibbler.cm4all.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729082AbgDGObZ (ORCPT ); Tue, 7 Apr 2020 10:31:25 -0400 Received: from localhost (localhost [127.0.0.1]) by nibbler.cm4all.net (Postfix) with ESMTP id 9D6D4C0101 for ; Tue, 7 Apr 2020 16:23:05 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at nibbler.cm4all.net Received: from nibbler.cm4all.net ([127.0.0.1]) by localhost (nibbler.cm4all.net [127.0.0.1]) (amavisd-new, port 10024) with LMTP id wDTXOrKdmkLV for ; Tue, 7 Apr 2020 16:23:05 +0200 (CEST) Received: from zero.intern.cm-ag (zero.intern.cm-ag [172.30.16.10]) by nibbler.cm4all.net (Postfix) with SMTP id 6D769C0131 for ; Tue, 7 Apr 2020 16:23:05 +0200 (CEST) Received: (qmail 19653 invoked from network); 7 Apr 2020 17:35:18 +0200 Received: from unknown (HELO rabbit.intern.cm-ag) (172.30.3.1) by zero.intern.cm-ag with SMTP; 7 Apr 2020 17:35:18 +0200 Received: by rabbit.intern.cm-ag (Postfix, from userid 1023) id 3558B46143D; Tue, 7 Apr 2020 16:23:05 +0200 (CEST) From: Max Kellermann To: linux-fsdevel@vger.kernel.org, linux-nfs@vger.kernel.org, trond.myklebust@hammerspace.com Cc: bfields@redhat.com, tytso@mit.edu, viro@zeniv.linux.org.uk, agruenba@redhat.com, linux-kernel@vger.kernel.org, Max Kellermann , stable@vger.kernel.org Subject: [PATCH v3 1/4] fs/posix_acl: apply umask if superblock disables ACL support Date: Tue, 7 Apr 2020 16:22:40 +0200 Message-Id: <20200407142243.2032-1-mk@cm4all.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-nfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org The function posix_acl_create() applies the umask only if the inode has no ACL (= NULL) or if ACLs are not supported by the filesystem driver (= -EOPNOTSUPP). However, this happens only after after the IS_POSIXACL() check succeeded. If the superblock doesn't enable ACL support, umask will never be applied. A filesystem which has no ACL support will of course not enable SB_POSIXACL, rendering the umask-applying code path unreachable. This fixes a bug which causes the umask to be ignored with O_TMPFILE on tmpfs: https://github.com/MusicPlayerDaemon/MPD/issues/558 https://bugs.gentoo.org/show_bug.cgi?id=686142#c3 https://bugzilla.kernel.org/show_bug.cgi?id=203625 Signed-off-by: Max Kellermann Reviewed-by: J. Bruce Fields Cc: stable@vger.kernel.org --- fs/posix_acl.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/fs/posix_acl.c b/fs/posix_acl.c index 249672bf54fe..e5e7a2295b99 100644 --- a/fs/posix_acl.c +++ b/fs/posix_acl.c @@ -589,9 +589,14 @@ posix_acl_create(struct inode *dir, umode_t *mode, *acl = NULL; *default_acl = NULL; - if (S_ISLNK(*mode) || !IS_POSIXACL(dir)) + if (S_ISLNK(*mode)) return 0; + if (!IS_POSIXACL(dir)) { + *mode &= ~current_umask(); + return 0; + } + p = get_acl(dir, ACL_TYPE_DEFAULT); if (!p || p == ERR_PTR(-EOPNOTSUPP)) { *mode &= ~current_umask(); -- 2.20.1