Received: by 2002:a05:6a10:9e8c:0:0:0:0 with SMTP id y12csp309774pxx; Wed, 28 Oct 2020 05:36:25 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxnj2AempIiEpiMItmLtgaw/JpkBghBavz1QxYOC8HYaf64L4XW+jJOUb/GFSjBfqB+q6aq X-Received: by 2002:a17:906:abce:: with SMTP id kq14mr7651501ejb.411.1603888585719; Wed, 28 Oct 2020 05:36:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1603888585; cv=none; d=google.com; s=arc-20160816; b=RTkxJOOYrPe/Ju06nOm86ZizsOVhAbJJJWcVekHUpzLOESfO/050qM8OZVrJdezyQ+ 1LL+MglU1FgUTognDST6Qbc5hnOebbxpupX1uzOxUqXyCSMzYbklZbS+IIzWussLAifD hnSySb2RWx8eA8keQBjK+d8LpxKP6toxEGpU9ZHKw4acBpbhijzuRVEuDja5xElpibru Q+Puw1PiQapY1bSF8YmEeAaKgEL3SClCw6lc2rCeje2hJxk47uJcvRd0Oy0QMaJPTmjQ +3gY9RntOah4wrMjqLIQ9bqGo9sNl+OBWT0z/FikHCVhAx02YT8jkbKR1UXvFP/UkZ0Z tjTA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=+FrI4KkOMoRxOacBPZVe2ksFzMlyO8EEnvhnJIBGd9w=; b=N5LgA6YkA2kYfjN4DWy4jiFJLNGe/f6RFBt2wYA3Kfv/4911IxiiFgQbQOjeMkK3P/ yWyNvf8NVzRWEzvBsQCv0E6dlTkCx4qd0BM/h1A0t12PSFwDXEhLnCY6kei6QUsb+Omj 8GGxvwSk89nr5soUZsTwPPizSOkoVXXLNGvv5vJr7zDv06xOqXD746kiH2m24ho4bbZl lLtxNRokwc3C30z8VuS4CHVDUZMCHKU1VAKtTOrdju3f7A/ygQt/LfA0Jv1aOoD5P5Ab VJDb3vKT2hT9B/x6MhbQxmtSOHImCU1YhmeamuP7xf6/I9O5/8oq2T8Uz9fTSHeXT3nw bLsg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=PNIUDDc8; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id gf17si2900638ejb.226.2020.10.28.05.36.03; Wed, 28 Oct 2020 05:36:25 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=PNIUDDc8; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1797336AbgJ0PW5 (ORCPT + 99 others); Tue, 27 Oct 2020 11:22:57 -0400 Received: from mail.kernel.org ([198.145.29.99]:35112 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1796927AbgJ0PUj (ORCPT ); Tue, 27 Oct 2020 11:20:39 -0400 Received: from localhost (83-86-74-64.cable.dynamic.v4.ziggo.nl [83.86.74.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 54C4520728; Tue, 27 Oct 2020 15:20:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1603812038; bh=mSVbc8urRtrPQ1aAI0yJgu1QY2COMvNP2PyLBX9ttlE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PNIUDDc8PacX6GfD/1aQcMjbVZM6l3xXEW13DlmteWAXkkDFtW8A0lTfW0aMfIgOC uJV25nT8D0yg+ivr4+X4uh7GTNb6v3Sm41k7FHDsvzdAKR+IsDz9ABaGAodY5IfnLP yNGodUMoiqdEQXZ0kvK05ii3wZuzHmXrW0Kh5lnU= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Aurelien Aptel , Steve French Subject: [PATCH 5.9 069/757] SMB3.1.1: Fix ids returned in POSIX query dir Date: Tue, 27 Oct 2020 14:45:19 +0100 Message-Id: <20201027135453.781484145@linuxfoundation.org> X-Mailer: git-send-email 2.29.1 In-Reply-To: <20201027135450.497324313@linuxfoundation.org> References: <20201027135450.497324313@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Steve French commit 9934430e2178d5164eb1ac91a9b092f9e7e64745 upstream. We were setting the uid/gid to the default in each dir entry in the parsing of the POSIX query dir response, rather than attempting to map the user and group SIDs returned by the server to well known SIDs (or upcall if not found). CC: Stable Reviewed-by: Aurelien Aptel Signed-off-by: Steve French Signed-off-by: Greg Kroah-Hartman --- fs/cifs/cifsacl.c | 5 +++-- fs/cifs/cifsproto.h | 2 ++ fs/cifs/readdir.c | 5 ++--- 3 files changed, 7 insertions(+), 5 deletions(-) --- a/fs/cifs/cifsacl.c +++ b/fs/cifs/cifsacl.c @@ -338,7 +338,7 @@ invalidate_key: goto out_key_put; } -static int +int sid_to_id(struct cifs_sb_info *cifs_sb, struct cifs_sid *psid, struct cifs_fattr *fattr, uint sidtype) { @@ -359,7 +359,8 @@ sid_to_id(struct cifs_sb_info *cifs_sb, return -EIO; } - if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_UID_FROM_ACL) { + if ((cifs_sb->mnt_cifs_flags & CIFS_MOUNT_UID_FROM_ACL) || + (cifs_sb_master_tcon(cifs_sb)->posix_extensions)) { uint32_t unix_id; bool is_group; --- a/fs/cifs/cifsproto.h +++ b/fs/cifs/cifsproto.h @@ -209,6 +209,8 @@ extern int cifs_set_file_info(struct ino extern int cifs_rename_pending_delete(const char *full_path, struct dentry *dentry, const unsigned int xid); +extern int sid_to_id(struct cifs_sb_info *cifs_sb, struct cifs_sid *psid, + struct cifs_fattr *fattr, uint sidtype); extern int cifs_acl_to_fattr(struct cifs_sb_info *cifs_sb, struct cifs_fattr *fattr, struct inode *inode, bool get_mode_from_special_sid, --- a/fs/cifs/readdir.c +++ b/fs/cifs/readdir.c @@ -267,9 +267,8 @@ cifs_posix_to_fattr(struct cifs_fattr *f if (reparse_file_needs_reval(fattr)) fattr->cf_flags |= CIFS_FATTR_NEED_REVAL; - /* TODO map SIDs */ - fattr->cf_uid = cifs_sb->mnt_uid; - fattr->cf_gid = cifs_sb->mnt_gid; + sid_to_id(cifs_sb, &parsed.owner, fattr, SIDOWNER); + sid_to_id(cifs_sb, &parsed.group, fattr, SIDGROUP); } static void __dir_info_to_fattr(struct cifs_fattr *fattr, const void *info)