1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-27 22:50:26 +03:00

s3-svcctl: use security descriptor marshall helper in svcctl_set_secdesc().

Guenther
This commit is contained in:
Günther Deschner 2009-02-05 02:54:05 +01:00
parent a66828a37f
commit d704efc536

View File

@ -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;