[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha6-486-gd704efc

Günther Deschner gd at samba.org
Thu Feb 5 11:15:35 GMT 2009


The branch, master has been updated
       via  d704efc536cdd0cc9ae9d235242cc4a12ed17858 (commit)
      from  a66828a37fbb4250dd25c828f3bbb8535fcffea0 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit d704efc536cdd0cc9ae9d235242cc4a12ed17858
Author: Günther Deschner <gd at samba.org>
Date:   Thu Feb 5 02:54:05 2009 +0100

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

-----------------------------------------------------------------------

Summary of changes:
 source3/services/services_db.c |   16 +++++++---------
 1 files changed, 7 insertions(+), 9 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/services/services_db.c b/source3/services/services_db.c
index e415248..6d1b5d5 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;


-- 
Samba Shared Repository


More information about the samba-cvs mailing list