summaryrefslogtreecommitdiffstats
path: root/source/rpc_parse/parse_sec.c
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2000-12-04 01:58:22 +0000
committerAndrew Tridgell <tridge@samba.org>2000-12-04 01:58:22 +0000
commit9ec4b1fa48fbae937fdf78db06005a7b0cd52d89 (patch)
tree4489f3db7ef14f8e102074943bd4b610ad7e929d /source/rpc_parse/parse_sec.c
parentcfe4cb5dfaabde8eee0ec20d938cf58a891286a3 (diff)
downloadsamba-9ec4b1fa48fbae937fdf78db06005a7b0cd52d89.tar.gz
samba-9ec4b1fa48fbae937fdf78db06005a7b0cd52d89.tar.xz
samba-9ec4b1fa48fbae937fdf78db06005a7b0cd52d89.zip
no longer pass the type to make_sec_desc(), instead the type is
derived from the other arguments
Diffstat (limited to 'source/rpc_parse/parse_sec.c')
-rw-r--r--source/rpc_parse/parse_sec.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/source/rpc_parse/parse_sec.c b/source/rpc_parse/parse_sec.c
index 39ead581267..2d4f7453808 100644
--- a/source/rpc_parse/parse_sec.c
+++ b/source/rpc_parse/parse_sec.c
@@ -419,12 +419,11 @@ SEC_DESC_BUF *sec_desc_merge(SEC_DESC_BUF *new_sdb, SEC_DESC_BUF *old_sdb)
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);
@@ -438,7 +437,7 @@ SEC_DESC_BUF *sec_desc_merge(SEC_DESC_BUF *new_sdb, SEC_DESC_BUF *old_sdb)
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)
{
@@ -453,7 +452,10 @@ SEC_DESC *make_sec_desc(uint16 revision, uint16 type,
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;
@@ -535,7 +537,7 @@ SEC_DESC *dup_sec_desc( SEC_DESC *src)
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);
}
@@ -568,7 +570,7 @@ void free_sec_desc(SEC_DESC **ppsd)
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);
}