/* Make a deep copy of the security descriptor */
psd = make_sec_desc(secdesc_ctr->sec->revision,
- secdesc_ctr->sec->type,
owner_sid, group_sid,
sacl,
dacl,
if ((psa = make_sec_acl(NT4_ACL_REVISION, 2, ace)) != NULL) {
psd = make_sec_desc(SEC_DESC_REVISION,
- SEC_DESC_SELF_RELATIVE |
- SEC_DESC_DACL_PRESENT,
&owner_sid, NULL,
NULL, psa, &sd_size);
free_sec_acl(&psa);
sid_append_rid(&owner_sid, DOMAIN_USER_RID_ADMIN);
psd = make_sec_desc((*secdesc_ctr)->sec->revision,
- (*secdesc_ctr)->sec->type,
&owner_sid,
(*secdesc_ctr)->sec->grp_sid,
(*secdesc_ctr)->sec->sacl,
DEBUG(4,("REG Create Key: %s %s 0x%08x\n", key_name, key_class,
sam_access != NULL ? sam_access->mask : 0));
- if((sec = make_sec_desc( 1, SEC_DESC_SELF_RELATIVE, NULL, NULL, NULL, NULL, &sec_len)) == NULL) {
+ if((sec = make_sec_desc( 1, NULL, NULL, NULL, NULL, &sec_len)) == NULL) {
DEBUG(0,("make_sec_desc : malloc fail.\n"));
return False;
}
dacl = new_sdb->sec->dacl;
} else {
dacl = old_sdb->sec->dacl;
- secdesc_type |= SEC_DESC_DACL_PRESENT;
}
/* Create new security descriptor from bits */
- psd = make_sec_desc(new_sdb->sec->revision, secdesc_type,
+ psd = make_sec_desc(new_sdb->sec->revision,
owner_sid, group_sid, sacl, dacl, &secdesc_size);
return_sdb = make_sec_desc_buf(secdesc_size, psd);
Creates a SEC_DESC structure
********************************************************************/
-SEC_DESC *make_sec_desc(uint16 revision, uint16 type,
+SEC_DESC *make_sec_desc(uint16 revision,
DOM_SID *owner_sid, DOM_SID *grp_sid,
SEC_ACL *sacl, SEC_ACL *dacl, size_t *sd_size)
{
ZERO_STRUCTP(dst);
dst->revision = revision;
- dst->type = type;
+ dst->type = SEC_DESC_SELF_RELATIVE;
+
+ if (sacl) dst->type |= SEC_DESC_SACL_PRESENT;
+ if (dacl) dst->type |= SEC_DESC_DACL_PRESENT;
dst->off_owner_sid = 0;
dst->off_grp_sid = 0;
if(src == NULL)
return NULL;
- return make_sec_desc( src->revision, src->type,
+ return make_sec_desc( src->revision,
src->owner_sid, src->grp_sid, src->sacl,
src->dacl, &dummy);
}
SEC_DESC *make_standard_sec_desc(DOM_SID *owner_sid, DOM_SID *grp_sid,
SEC_ACL *dacl, size_t *sd_size)
{
- return make_sec_desc(SEC_DESC_REVISION, SEC_DESC_SELF_RELATIVE|SEC_DESC_DACL_PRESENT,
+ return make_sec_desc(SEC_DESC_REVISION,
owner_sid, grp_sid, NULL, dacl, sd_size);
}