The S-1-5-88-1-<uid> and S-1-5-88-2-<gid> SIDs sent with a create
request take the raw kernel ids from kuid_t.val, which is gone now that
the ids can be UUIDs and GUIDs. Use __kuid_val()/__kgid_val(), the same
value for classic ids and -1 for the others, which have no unix SID.

Assisted-by: Claude:claude-opus-5-5

Signed-off-by: Jan Koester <[email protected]>
---
 fs/smb/client/cifsacl.c | 2 +-
 fs/smb/client/smb2pdu.c | 7 ++++---
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/fs/smb/client/cifsacl.c b/fs/smb/client/cifsacl.c
index c5e47a835f..78ed25b1f7 100644
--- a/fs/smb/client/cifsacl.c
+++ b/fs/smb/client/cifsacl.c
@@ -1086,7 +1086,7 @@ unsigned int setup_special_user_owner_ACE(struct smb_ace 
*pntace)
 
        pntace->sid.sub_auth[0] = sid_unix_NFS_users.sub_auth[0];
        pntace->sid.sub_auth[1] = sid_unix_NFS_users.sub_auth[1];
-       pntace->sid.sub_auth[2] = cpu_to_le32(current_fsgid().val);
+       pntace->sid.sub_auth[2] = cpu_to_le32(__kgid_val(current_fsgid()));
 
        /* size = 1 + 1 + 2 + 4 + 1 + 1 + 6 + (psid->num_subauth*4) */
        pntace->size = cpu_to_le16(ace_size);
diff --git a/fs/smb/client/smb2pdu.c b/fs/smb/client/smb2pdu.c
index cfe3c4b4ab..941ca8a3d6 100644
--- a/fs/smb/client/smb2pdu.c
+++ b/fs/smb/client/smb2pdu.c
@@ -2731,7 +2731,7 @@ static void setup_owner_group_sids(char *buf)
        sids->owner.Authority[5] = 5;
        sids->owner.SubAuthorities[0] = cpu_to_le32(88);
        sids->owner.SubAuthorities[1] = cpu_to_le32(1);
-       sids->owner.SubAuthorities[2] = cpu_to_le32(current_fsuid().val);
+       sids->owner.SubAuthorities[2] = 
cpu_to_le32(__kuid_val(current_fsuid()));
 
        /* Populate the group ownership fields S-1-5-88-2 */
        sids->group.Revision = 1;
@@ -2739,9 +2739,10 @@ static void setup_owner_group_sids(char *buf)
        sids->group.Authority[5] = 5;
        sids->group.SubAuthorities[0] = cpu_to_le32(88);
        sids->group.SubAuthorities[1] = cpu_to_le32(2);
-       sids->group.SubAuthorities[2] = cpu_to_le32(current_fsgid().val);
+       sids->group.SubAuthorities[2] = 
cpu_to_le32(__kgid_val(current_fsgid()));
 
-       cifs_dbg(FYI, "owner S-1-5-88-1-%d, group S-1-5-88-2-%d\n", 
current_fsuid().val, current_fsgid().val);
+       cifs_dbg(FYI, "owner S-1-5-88-1-%d, group S-1-5-88-2-%d\n",
+                __kuid_val(current_fsuid()), __kgid_val(current_fsgid()));
 }
 
 /* See MS-SMB2 2.2.13.2.2 and MS-DTYP 2.4.6 */
-- 
2.56.0


Reply via email to