From: Christian Brauner <brauner@kernel.org> To: Steve French <stfrench@microsoft.com>, Christoph Hellwig <hch@infradead.org>, Namjae Jeon <namjae.jeon@samsung.com>, linux-cifs@vger.kernel.org Cc: Hyunchul Lee <hyc.lee@gmail.com>, Sergey Senozhatsky <senozhatsky@chromium.org>, Christian Brauner <christian.brauner@ubuntu.com> Subject: [PATCH 03/11] ksmbd: fix translation in create_posix_rsp_buf() Date: Mon, 23 Aug 2021 17:13:49 +0200 [thread overview] Message-ID: <20210823151357.471691-4-brauner@kernel.org> (raw) In-Reply-To: <20210823151357.471691-1-brauner@kernel.org> From: Christian Brauner <christian.brauner@ubuntu.com> When transfering ownership information to the client the k*ids are translated into raw *ids before they are sent over the wire. The function currently erroneously translates the k*ids according to the mount's idmapping. Instead, reporting the owning *ids to userspace the underlying k*ids need to be mapped up in the caller's user namespace. This is how stat() works. The caller in this instance is ksmbd itself and ksmbd always runs in the initial user namespace. Translate according to that taking any potential idmapped mounts into account. Switch to from_k*id_munged() which ensures that the overflow*id is returned instead of the (*id_t)-1 when the k*id can't be translated. Cc: Steve French <stfrench@microsoft.com> Cc: Christoph Hellwig <hch@infradead.org> Cc: Namjae Jeon <namjae.jeon@samsung.com> Cc: Hyunchul Lee <hyc.lee@gmail.com> Cc: Sergey Senozhatsky <senozhatsky@chromium.org> Cc: linux-cifs@vger.kernel.org Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com> --- fs/ksmbd/oplock.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/fs/ksmbd/oplock.c b/fs/ksmbd/oplock.c index 6ace6c2f22dc..16b6236d1bd2 100644 --- a/fs/ksmbd/oplock.c +++ b/fs/ksmbd/oplock.c @@ -1614,9 +1614,11 @@ void create_posix_rsp_buf(char *cc, struct ksmbd_file *fp) buf->nlink = cpu_to_le32(inode->i_nlink); buf->reparse_tag = cpu_to_le32(fp->volatile_id); buf->mode = cpu_to_le32(inode->i_mode); - id_to_sid(from_kuid(user_ns, inode->i_uid), + id_to_sid(from_kuid_munged(&init_user_ns, + i_uid_into_mnt(user_ns, inode)), SIDNFS_USER, (struct smb_sid *)&buf->SidBuffer[0]); - id_to_sid(from_kgid(user_ns, inode->i_gid), + id_to_sid(from_kgid_munged(&init_user_ns, + i_gid_into_mnt(user_ns, inode)), SIDNFS_GROUP, (struct smb_sid *)&buf->SidBuffer[20]); } -- 2.30.2
next prev parent reply other threads:[~2021-08-23 15:15 UTC|newest] Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top [not found] <CGME20210823030840epcas1p24b226d445a683012925efd81a72ecb6d@epcas1p2.samsung.com> 2021-08-23 2:58 ` [PATCH v8 00/13] ksmbd: introduce new SMB3 kernel server Namjae Jeon [not found] ` <CGME20210823030841epcas1p1a811d4a6aec75c09581a9b0fb575d23e@epcas1p1.samsung.com> 2021-08-23 2:58 ` [PATCH v8 01/13] ksmbd: add document Namjae Jeon [not found] ` <CGME20210823030842epcas1p27cdeb782776f6659826110cd9a3524d4@epcas1p2.samsung.com> 2021-08-23 2:58 ` [PATCH v8 02/13] ksmbd: add server handler Namjae Jeon [not found] ` <CGME20210823030843epcas1p4502dad130066a74f08745c849b981112@epcas1p4.samsung.com> 2021-08-23 2:58 ` [PATCH v8 03/13] ksmbd: add tcp transport layer Namjae Jeon [not found] ` <CGME20210823030844epcas1p2a9dc2c02d32df86e9eb3c2af975c7d81@epcas1p2.samsung.com> 2021-08-23 2:58 ` [PATCH v8 04/13] ksmbd: add ipc " Namjae Jeon [not found] ` <CGME20210823030845epcas1p3ff50078868ed215c43898356c9248d24@epcas1p3.samsung.com> 2021-08-23 2:58 ` [PATCH v8 05/13] ksmbd: add rdma " Namjae Jeon [not found] ` <CGME20210823030845epcas1p2c72588cd470ca46463fd46b42b7b9603@epcas1p2.samsung.com> 2021-08-23 2:58 ` [PATCH v8 06/13] ksmbd: add a utility code that tracks (and caches) sessions data Namjae Jeon [not found] ` <CGME20210823030846epcas1p35bd3c665d8afd6205c617840e709afc7@epcas1p3.samsung.com> 2021-08-23 2:58 ` [PATCH v8 07/13] ksmbd: add authentication Namjae Jeon [not found] ` <CGME20210823030849epcas1p39035b8f9ec5cdc87dc7beca86590932c@epcas1p3.samsung.com> 2021-08-23 2:58 ` [PATCH v8 10/13] ksmbd: add oplock/lease cache mechanism Namjae Jeon [not found] ` <CGME20210823030850epcas1p1eea7803d1ca2e854a0199f4c83cd8190@epcas1p1.samsung.com> 2021-08-23 2:58 ` [PATCH v8 11/13] ksmbd: add file operations Namjae Jeon [not found] ` <CGME20210823030851epcas1p2d141386b64cd9039121a9f6a5074a362@epcas1p2.samsung.com> 2021-08-23 2:58 ` [PATCH v8 12/13] ksmbd: add Kconfig and Makefile Namjae Jeon [not found] ` <CGME20210823030851epcas1p3df6319948e331e2e0225adba4e81e660@epcas1p3.samsung.com> 2021-08-23 2:58 ` [PATCH v8 13/13] MAINTAINERS: add ksmbd kernel server Namjae Jeon 2021-08-23 15:13 ` [PATCH 00/11] ksmbd: various fixes Christian Brauner 2021-08-23 15:13 ` [PATCH 01/11] ksmbd: fix lookup on idmapped mounts Christian Brauner 2021-08-23 15:13 ` [PATCH 02/11] ksmbd: fix translation in smb2_populate_readdir_entry() Christian Brauner 2021-08-23 15:13 ` Christian Brauner [this message] 2021-08-23 15:13 ` [PATCH 04/11] smb2pdu: fix translation in ksmbd_acls_fattr() Christian Brauner 2021-08-23 15:13 ` [PATCH 05/11] ksmbd: fix translation in acl entries Christian Brauner 2021-08-23 15:13 ` [PATCH 06/11] ksmbd: fix subauth 0 handling in sid_to_id() Christian Brauner 2021-08-24 8:13 ` Namjae Jeon 2021-08-24 11:37 ` Christian Brauner 2021-08-23 15:13 ` [PATCH 07/11] ksmbd: fix translation " Christian Brauner 2021-08-23 15:13 ` [PATCH 08/11] ndr: fix translation in ndr_encode_posix_acl() Christian Brauner 2021-08-23 15:13 ` [PATCH 09/11] ksmbd: ensure error is surfaced in set_file_basic_info() Christian Brauner 2021-08-23 15:13 ` [PATCH 10/11] ksmbd: remove setattr preparations " Christian Brauner 2021-09-01 12:47 ` Namjae Jeon 2021-09-02 13:43 ` Christian Brauner 2021-10-01 18:51 ` Marios Makassikis 2021-10-02 0:41 ` Namjae Jeon 2021-10-02 19:29 ` Marios Makassikis 2021-10-03 0:12 ` Namjae Jeon 2021-08-23 15:13 ` [PATCH 11/11] ksmbd: defer notify_change() call Christian Brauner 2021-08-24 8:20 ` Namjae Jeon 2021-08-24 11:36 ` Christian Brauner 2021-09-01 12:53 ` Namjae Jeon 2021-09-02 13:42 ` Christian Brauner
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210823151357.471691-4-brauner@kernel.org \ --to=brauner@kernel.org \ --cc=christian.brauner@ubuntu.com \ --cc=hch@infradead.org \ --cc=hyc.lee@gmail.com \ --cc=linux-cifs@vger.kernel.org \ --cc=namjae.jeon@samsung.com \ --cc=senozhatsky@chromium.org \ --cc=stfrench@microsoft.com \ --subject='Re: [PATCH 03/11] ksmbd: fix translation in create_posix_rsp_buf()' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).