Lines Matching full:sid
165 * This function is called for every ACE in the DACL whose SID matches
208 pntace->sid.revision = psid->revision; in fill_ace_for_sid()
209 pntace->sid.num_subauth = psid->num_subauth; in fill_ace_for_sid()
211 pntace->sid.authority[i] = psid->authority[i]; in fill_ace_for_sid()
213 pntace->sid.sub_auth[i] = psid->sub_auth[i]; in fill_ace_for_sid()
402 (offsetof(struct smb_ace, sid) + in parse_dacl()
433 acl_size = offsetof(struct smb_ace, sid) + in parse_dacl()
437 ppace[i]->sid.num_subauth == 0 || in parse_dacl()
438 ppace[i]->sid.num_subauth > SID_MAX_SUB_AUTHORITIES || in parse_dacl()
440 acl_size + sizeof(__le32) * ppace[i]->sid.num_subauth) || in parse_dacl()
442 acl_size + sizeof(__le32) * ppace[i]->sid.num_subauth)) in parse_dacl()
449 if (!(compare_sids(&ppace[i]->sid, &sid_unix_NFS_mode))) { in parse_dacl()
451 le32_to_cpu(ppace[i]->sid.sub_auth[2]); in parse_dacl()
453 } else if (!compare_sids(&ppace[i]->sid, pownersid)) { in parse_dacl()
464 } else if (!compare_sids(&ppace[i]->sid, pgrpsid) || in parse_dacl()
465 ppace[i]->sid.sub_auth[ppace[i]->sid.num_subauth - 1] == in parse_dacl()
476 } else if (!compare_sids(&ppace[i]->sid, &sid_everyone)) { in parse_dacl()
486 } else if (!compare_sids(&ppace[i]->sid, &creator_owner)) { in parse_dacl()
488 } else if (!compare_sids(&ppace[i]->sid, &creator_group)) { in parse_dacl()
490 } else if (!compare_sids(&ppace[i]->sid, &sid_authusers)) { in parse_dacl()
498 ret = sid_to_id(idmap, &ppace[i]->sid, SIDOWNER, &temp_fattr); in parse_dacl()
500 pr_err("%s: Error %d mapping Owner SID to uid\n", in parse_dacl()
590 struct smb_sid *sid; in set_posix_acl_entries_dacl() local
601 sid = kmalloc(sizeof(struct smb_sid), KSMBD_DEFAULT_GFP); in set_posix_acl_entries_dacl()
602 if (!sid) in set_posix_acl_entries_dacl()
612 id_to_sid(uid, sid_type, sid); in set_posix_acl_entries_dacl()
617 id_to_sid(gid, SIDUNIX_GROUP, sid); in set_posix_acl_entries_dacl()
619 smb_copy_sid(sid, &sid_everyone); in set_posix_acl_entries_dacl()
621 kfree(sid); in set_posix_acl_entries_dacl()
626 if (ntace->sid.sub_auth[ntace->sid.num_subauth - 1] == in set_posix_acl_entries_dacl()
627 sid->sub_auth[sid->num_subauth - 1]) in set_posix_acl_entries_dacl()
637 *size += fill_ace_for_sid(ntace, sid, ACCESS_ALLOWED, flags, in set_posix_acl_entries_dacl()
647 *size += fill_ace_for_sid(ntace, sid, ACCESS_ALLOWED, in set_posix_acl_entries_dacl()
656 kfree(sid); in set_posix_acl_entries_dacl()
668 sid = kmalloc(sizeof(struct smb_sid), KSMBD_DEFAULT_GFP); in set_posix_acl_entries_dacl()
669 if (!sid) in set_posix_acl_entries_dacl()
676 id_to_sid(uid, SIDCREATOR_OWNER, sid); in set_posix_acl_entries_dacl()
681 id_to_sid(gid, SIDCREATOR_GROUP, sid); in set_posix_acl_entries_dacl()
683 kfree(sid); in set_posix_acl_entries_dacl()
688 *size += fill_ace_for_sid(ntace, sid, ACCESS_ALLOWED, 0x0b, in set_posix_acl_entries_dacl()
694 kfree(sid); in set_posix_acl_entries_dacl()
745 const struct smb_sid *sid; in set_mode_dacl() local
758 sid = &server_conf.domain_sid; in set_mode_dacl()
760 sid = &sid_unix_users; in set_mode_dacl()
761 ace_size = fill_ace_for_sid(pace, sid, ACCESS_ALLOWED, 0, in set_mode_dacl()
763 pace->sid.sub_auth[pace->sid.num_subauth++] = cpu_to_le32(uid); in set_mode_dacl()
771 pace->sid.sub_auth[pace->sid.num_subauth++] = in set_mode_dacl()
805 * validate that we do not go past end of ACL - sid must be at least 8 in parse_sid()
806 * bytes long (assuming no sub-auths - e.g. the null SID in parse_sid()
809 pr_err("ACL too small to parse SID %p\n", psid); in parse_sid()
866 pr_err("%s: Error %d parsing Owner SID\n", __func__, rc); in parse_sec_desc()
872 pr_err("%s: Error %d mapping Owner SID to uid\n", in parse_sec_desc()
884 pr_err("%s: Error %d mapping Owner SID to gid\n", in parse_sec_desc()
890 pr_err("%s: Error %d mapping Group SID to gid\n", in parse_sec_desc()
1007 static void smb_set_ace(struct smb_ace *ace, const struct smb_sid *sid, u8 type, in smb_set_ace() argument
1013 smb_copy_sid(&ace->sid, sid); in smb_set_ace()
1014 ace->size = cpu_to_le16(1 + 1 + 2 + 4 + 1 + 1 + 6 + (sid->num_subauth * 4)); in smb_set_ace()
1095 if (!compare_sids(&creator_owner, &parent_aces->sid)) { in smb_inherit_dacl()
1099 } else if (!compare_sids(&creator_group, &parent_aces->sid)) { in smb_inherit_dacl()
1105 psid = &parent_aces->sid; in smb_inherit_dacl()
1117 psid = &parent_aces->sid; in smb_inherit_dacl()
1244 struct smb_sid sid; in smb_check_perm_dacl() local
1304 id_to_sid(uid, sid_type, &sid); in smb_check_perm_dacl()
1316 if (!compare_sids(&sid, &ace->sid) || in smb_check_perm_dacl()
1317 !compare_sids(&sid_unix_NFS_mode, &ace->sid)) { in smb_check_perm_dacl()
1321 if (!compare_sids(&sid_everyone, &ace->sid)) in smb_check_perm_dacl()
1371 ksmbd_debug(SMB, "Can't find corresponding sid\n"); in smb_check_perm_dacl()