diff options
author | Günther Deschner <gd@samba.org> | 2009-02-05 02:54:05 +0100 |
---|---|---|
committer | Günther Deschner <gd@samba.org> | 2009-02-05 12:15:13 +0100 |
commit | d704efc536cdd0cc9ae9d235242cc4a12ed17858 (patch) | |
tree | e837859df6d46aa10443abb886c52fa745d3cbe2 /source3 | |
parent | a66828a37fbb4250dd25c828f3bbb8535fcffea0 (diff) | |
download | samba-d704efc536cdd0cc9ae9d235242cc4a12ed17858.tar.gz samba-d704efc536cdd0cc9ae9d235242cc4a12ed17858.tar.bz2 samba-d704efc536cdd0cc9ae9d235242cc4a12ed17858.zip |
s3-svcctl: use security descriptor marshall helper in svcctl_set_secdesc().
Guenther
Diffstat (limited to 'source3')
-rw-r--r-- | source3/services/services_db.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/source3/services/services_db.c b/source3/services/services_db.c index e41524851f..6d1b5d5b95 100644 --- a/source3/services/services_db.c +++ b/source3/services/services_db.c @@ -567,7 +567,8 @@ bool svcctl_set_secdesc( TALLOC_CTX *ctx, const char *name, SEC_DESC *sec_desc, WERROR wresult; char *path = NULL; REGVAL_CTR *values = NULL; - prs_struct ps; + DATA_BLOB blob; + NTSTATUS status; bool ret = False; /* now add the security descriptor */ @@ -593,21 +594,18 @@ bool svcctl_set_secdesc( TALLOC_CTX *ctx, const char *name, SEC_DESC *sec_desc, /* stream the printer security descriptor */ - if (!prs_init( &ps, RPC_MAX_PDU_FRAG_LEN, key, MARSHALL)) { - DEBUG(0,("svcctl_set_secdesc: prs_init() failed!\n")); + status = marshall_sec_desc(ctx, sec_desc, &blob.data, &blob.length); + if (!NT_STATUS_IS_OK(status)) { + DEBUG(0,("svcctl_set_secdesc: ndr_push_struct_blob() failed!\n")); TALLOC_FREE( key ); return False; } - if ( sec_io_desc("sec_desc", &sec_desc, &ps, 0 ) ) { - uint32 offset = prs_offset( &ps ); - regval_ctr_addvalue( values, "Security", REG_BINARY, prs_data_p(&ps), offset ); - ret = store_reg_values( key, values ); - } + regval_ctr_addvalue( values, "Security", REG_BINARY, (const char *)blob.data, blob.length); + ret = store_reg_values( key, values ); /* cleanup */ - prs_mem_free( &ps ); TALLOC_FREE( key); return ret; |