Re: [PATCH] smb: client: mask server-provided mode to 07777 in modefromsid

From: Steve French

Date: Thu Jul 09 2026 - 16:55:56 EST


merged into cifs-2.6.git for-next

On Thu, Jul 9, 2026 at 10:55 AM Bjoern Doebel <doebel@xxxxxxxxx> wrote:
>
> From: Norbert Manthey <nmanthey@xxxxxxxxx>
>
> When modefromsid is active, parse_dacl() applies the server-provided
> sub_auth[2] value from the NFS mode SID to cf_mode without masking to
> 07777. Apply the correct masking, same as in the read path.
>
> Fixes: e2f8fbfb8d09c ("cifs: get mode bits from special sid on stat")
> Signed-off-by: Norbert Manthey <nmanthey@xxxxxxxxx>
> Assisted-by: Kiro:claude-opus-4.6
> Cc: stable@xxxxxxxxxxxxxxx
> ---
> fs/smb/client/cifsacl.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/smb/client/cifsacl.c b/fs/smb/client/cifsacl.c
> index 6d572dd995d79..a0a68404fbff7 100644
> --- a/fs/smb/client/cifsacl.c
> +++ b/fs/smb/client/cifsacl.c
> @@ -962,7 +962,7 @@ static void parse_dacl(struct smb_acl *pdacl, char *end_of_acl,
> */
> fattr->cf_mode &= ~07777;
> fattr->cf_mode |=
> - le32_to_cpu(ppace[i]->sid.sub_auth[2]);
> + le32_to_cpu(ppace[i]->sid.sub_auth[2]) & 07777;
> break;
> } else {
> if (compare_sids(&(ppace[i]->sid), pownersid) == 0) {
> --
> 2.50.1
>
>


--
Thanks,

Steve