Lines Matching refs:pntsd

814 int parse_sec_desc(struct mnt_idmap *idmap, struct smb_ntsd *pntsd,
820 char *end_of_acl = ((char *)pntsd) + acl_len;
824 if (!pntsd)
830 owner_sid_ptr = (struct smb_sid *)((char *)pntsd +
831 le32_to_cpu(pntsd->osidoffset));
832 group_sid_ptr = (struct smb_sid *)((char *)pntsd +
833 le32_to_cpu(pntsd->gsidoffset));
834 dacloffset = le32_to_cpu(pntsd->dacloffset);
835 dacl_ptr = (struct smb_acl *)((char *)pntsd + dacloffset);
838 pntsd->revision, pntsd->type, le32_to_cpu(pntsd->osidoffset),
839 le32_to_cpu(pntsd->gsidoffset),
840 le32_to_cpu(pntsd->sacloffset), dacloffset);
842 pntsd_type = le16_to_cpu(pntsd->type);
848 pntsd->type = cpu_to_le16(DACL_PRESENT);
850 if (pntsd->osidoffset) {
865 if (pntsd->gsidoffset) {
882 pntsd->type |= cpu_to_le16(DACL_AUTO_INHERITED);
884 pntsd->type |= cpu_to_le16(DACL_PROTECTED);
896 struct smb_ntsd *pntsd, struct smb_ntsd *ppntsd,
928 pntsd->sacloffset = 0;
929 pntsd->revision = cpu_to_le16(1);
930 pntsd->type = cpu_to_le16(SELF_RELATIVE);
932 pntsd->type |= ppntsd->type;
935 pntsd->osidoffset = cpu_to_le32(offset);
936 owner_sid_ptr = (struct smb_sid *)((char *)pntsd + offset);
942 pntsd->gsidoffset = cpu_to_le32(offset);
943 group_sid_ptr = (struct smb_sid *)((char *)pntsd + offset);
949 pntsd->type |= cpu_to_le16(DACL_PRESENT);
950 dacl_ptr = (struct smb_acl *)((char *)pntsd + offset);
977 pntsd->dacloffset = cpu_to_le32(offset);
1109 struct smb_ntsd *pntsd;
1129 pntsd = kzalloc(pntsd_alloc_size, GFP_KERNEL);
1130 if (!pntsd) {
1135 pntsd->revision = cpu_to_le16(1);
1136 pntsd->type = cpu_to_le16(SELF_RELATIVE | DACL_PRESENT);
1138 pntsd->type |= cpu_to_le16(DACL_AUTO_INHERITED);
1140 pntsd->osidoffset = parent_pntsd->osidoffset;
1141 pntsd->gsidoffset = parent_pntsd->gsidoffset;
1142 pntsd->dacloffset = parent_pntsd->dacloffset;
1144 if ((u64)le32_to_cpu(pntsd->osidoffset) + powner_sid_size >
1147 kfree(pntsd);
1151 if ((u64)le32_to_cpu(pntsd->gsidoffset) + pgroup_sid_size >
1154 kfree(pntsd);
1158 if ((u64)le32_to_cpu(pntsd->dacloffset) + sizeof(struct smb_acl) + nt_size >
1161 kfree(pntsd);
1165 if (pntsd->osidoffset) {
1166 struct smb_sid *owner_sid = (struct smb_sid *)((char *)pntsd +
1167 le32_to_cpu(pntsd->osidoffset));
1172 if (pntsd->gsidoffset) {
1173 struct smb_sid *group_sid = (struct smb_sid *)((char *)pntsd +
1174 le32_to_cpu(pntsd->gsidoffset));
1179 if (pntsd->dacloffset) {
1182 pdacl = (struct smb_acl *)((char *)pntsd + le32_to_cpu(pntsd->dacloffset));
1191 ksmbd_vfs_set_sd_xattr(conn, idmap, path, pntsd, pntsd_size, false);
1192 kfree(pntsd);
1219 struct smb_ntsd *pntsd = NULL;
1235 path->dentry, &pntsd);
1236 if (pntsd_size <= 0 || !pntsd)
1239 dacl_offset = le32_to_cpu(pntsd->dacloffset);
1244 pdacl = (struct smb_acl *)((char *)pntsd + le32_to_cpu(pntsd->dacloffset));
1377 kfree(pntsd);
1382 const struct path *path, struct smb_ntsd *pntsd, int ntsd_len,
1395 rc = parse_sec_desc(idmap, pntsd, ntsd_len, &fattr);
1437 if (type_check && !(le16_to_cpu(pntsd->type) & DACL_PRESENT))
1443 ksmbd_vfs_set_sd_xattr(conn, idmap, path, pntsd, ntsd_len,