cifs: Fix getting and setting SACLs over SMB1
authorPali Rohár <pali@kernel.org>
Mon, 14 Oct 2024 11:43:23 +0000 (13:43 +0200)
committerSteve French <stfrench@microsoft.com>
Wed, 29 Jan 2025 23:09:34 +0000 (17:09 -0600)
commit8b19dfb34d17e77a0809d433cc128b779282131b
treee07a0ce7685e1ef9f354ed6148cea9002d6a64d7
parent25f6184e24b3991eae977a29ecf27d537cc930b2
cifs: Fix getting and setting SACLs over SMB1

SMB1 callback get_cifs_acl_by_fid() currently ignores its last argument and
therefore ignores request for SACL_SECINFO. Fix this issue by correctly
propagating info argument from get_cifs_acl() and get_cifs_acl_by_fid() to
CIFSSMBGetCIFSACL() function and pass SACL_SECINFO when requested.

For accessing SACLs it is needed to open object with SYSTEM_SECURITY
access. Pass this flag when trying to get or set SACLs.

Same logic is in the SMB2+ code path.

This change fixes getting and setting of "system.cifs_ntsd_full" and
"system.smb3_ntsd_full" xattrs over SMB1 as currently it silentely ignored
SACL part of passed xattr buffer.

Fixes: 3970acf7ddb9 ("SMB3: Add support for getting and setting SACLs")
Signed-off-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/smb/client/cifsacl.c
fs/smb/client/cifsproto.h
fs/smb/client/cifssmb.c