[SCM] Samba Shared Repository - branch v4-0-test updated - release-4-0-0alpha2-843-g96f1ad6

Stefan Metzmacher metze at samba.org
Fri Feb 15 07:54:59 GMT 2008


The branch, v4-0-test has been updated
       via  96f1ad6d27fdfecd3a07a05052c8085d66472106 (commit)
       via  b5c0a6c114b5c832f742bd84179e5e9a5aed3698 (commit)
       via  47447f60bc8e5dd1021752e9b011f22762e45eed (commit)
       via  ae6976eb4a8ddafc40ce91f68c9bca861502093b (commit)
       via  70c7faace76a84d2fe15accf4f8a1ca0ad905bd4 (commit)
       via  30657ae0ebdb85ae995a3dfe3ce123851fd92e0f (commit)
      from  096eafd34778dde222bce4b0a5c0fc38b7de0359 (commit)

http://gitweb.samba.org/?samba.git;a=shortlog;h=v4-0-test


- Log -----------------------------------------------------------------
commit 96f1ad6d27fdfecd3a07a05052c8085d66472106
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Feb 14 16:08:17 2008 +0100

    epmapper.idl: don't use ascstr2 anymore
    
    metze

commit b5c0a6c114b5c832f742bd84179e5e9a5aed3698
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Feb 14 16:07:49 2008 +0100

    epmapper.idl: add link to official IDL
    
    metze

commit 47447f60bc8e5dd1021752e9b011f22762e45eed
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Feb 14 15:01:23 2008 +0100

    dcerpc.idl: use charset() instead of ascstr3
    
    metze

commit ae6976eb4a8ddafc40ce91f68c9bca861502093b
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Feb 14 15:03:37 2008 +0100

    ndr_sec_helper: create a completely zero sid, so that ndr_size_dom_sid28 can return 0
    
    metze

commit 70c7faace76a84d2fe15accf4f8a1ca0ad905bd4
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Feb 14 15:02:11 2008 +0100

    drsuapi.idl: use charset() instead of the exotic flags() and string
    
    metze

commit 30657ae0ebdb85ae995a3dfe3ce123851fd92e0f
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Feb 13 17:31:17 2008 +0100

    krb5pac.idl: use charset() instead of string type with flags
    
    metze

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

Summary of changes:
 source/librpc/idl/dcerpc.idl       |    3 ++-
 source/librpc/idl/drsuapi.idl      |    9 ++++++---
 source/librpc/idl/epmapper.idl     |   12 +++++++++++-
 source/librpc/idl/krb5pac.idl      |    3 ++-
 source/librpc/ndr/ndr_sec_helper.c |    3 +++
 5 files changed, 24 insertions(+), 6 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/librpc/idl/dcerpc.idl b/source/librpc/idl/dcerpc.idl
index fcb0be4..b2c6754 100644
--- a/source/librpc/idl/dcerpc.idl
+++ b/source/librpc/idl/dcerpc.idl
@@ -64,7 +64,8 @@ interface dcerpc
 		uint16 max_xmit_frag;
 		uint16 max_recv_frag;
 		uint32 assoc_group_id;
-		ascstr3 secondary_address;
+		[value(strlen(secondary_address)+1)] uint16 secondary_address_size;
+		[charset(DOS)] uint8 secondary_address[secondary_address_size];
 		[flag(NDR_ALIGN4)]    DATA_BLOB _pad1;
 		uint8 num_results;
 		dcerpc_ack_ctx ctx_list[num_results];
diff --git a/source/librpc/idl/drsuapi.idl b/source/librpc/idl/drsuapi.idl
index f298b7e..fb24122 100644
--- a/source/librpc/idl/drsuapi.idl
+++ b/source/librpc/idl/drsuapi.idl
@@ -130,7 +130,8 @@ interface drsuapi
 		[value(ndr_size_dom_sid28(&sid, ndr->flags))]  uint32 __ndr_size_sid;
 		GUID guid;
 		dom_sid28 sid;
-		[flag(STR_SIZE4|STR_CHARLEN|STR_CONFORMANT)] string dn;
+		[value(strlen_m(dn))] uint32 __ndr_size_dn;
+		[charset(UTF16),size_is(__ndr_size_dn+1)] uint16 dn[];
 	} drsuapi_DsReplicaObjectIdentifier;
 
 	typedef [public] bitmap {
@@ -451,7 +452,8 @@ interface drsuapi
 		[value(ndr_size_dom_sid28(&sid,ndr->flags))]  uint32 __ndr_size_sid;
 		GUID guid;
 		dom_sid28 sid;
-		[flag(STR_SIZE4|STR_CHARLEN)] string dn;
+		[value(strlen_m(dn))] uint32 __ndr_size_dn;
+		[charset(UTF16)] uint16 dn[__ndr_size_dn+1];
 	} drsuapi_DsReplicaObjectIdentifier3;
 
 	typedef [public,gensize] struct {
@@ -459,7 +461,8 @@ interface drsuapi
 		[value(ndr_size_dom_sid28(&sid,ndr->flags))]  uint32 __ndr_size_sid;
 		GUID guid;
 		dom_sid28 sid;
-		[flag(STR_SIZE4|STR_CHARLEN)] string dn;
+		[value(strlen_m(dn))] uint32 __ndr_size_dn;
+		[charset(UTF16)] uint16 dn[__ndr_size_dn+1];
 		[value(binary.length + 4)] uint32 __ndr_size_binary;
 		[flag(NDR_REMAINING)] DATA_BLOB binary;
 	} drsuapi_DsReplicaObjectIdentifier3Binary;
diff --git a/source/librpc/idl/epmapper.idl b/source/librpc/idl/epmapper.idl
index baf9f23..60ff338 100644
--- a/source/librpc/idl/epmapper.idl
+++ b/source/librpc/idl/epmapper.idl
@@ -3,6 +3,7 @@
 /*
   endpoint mapper interface
   Related links:
+	http://www.opengroup.org/onlinepubs/9629399/apdxo.htm : The official IDL for this pipe
 	http://www.opengroup.org/onlinepubs/9629399/apdxl.htm : Details on towers
 http://www.opengroup.org/onlinepubs/9629399/chap6.htm#tagcjh_11_02_03_01: binding strings
 
@@ -222,7 +223,16 @@ interface epmapper
 	typedef struct {
 		GUID        object;
 		epm_twr_t   *tower;
-		ascstr2     annotation;
+		/*
+		 * In theory this should be:
+		 *	[charset(DOS),string] uint8 annotation[64]
+		 * But midl treats this as:
+		 *	[charset(DOS),string] uint8 annotation[]
+		 * and pidl doesn't support this yet
+		 */
+		[value(0)] uint32 __annotation_offset;
+		[value(strlen(annotation)+1)] uint32 __annotation_length;
+		[charset(DOS)] uint8 annotation[__annotation_length];
 	} epm_entry_t;
 
 	typedef struct {
diff --git a/source/librpc/idl/krb5pac.idl b/source/librpc/idl/krb5pac.idl
index fa6bf51..efd4aa8 100644
--- a/source/librpc/idl/krb5pac.idl
+++ b/source/librpc/idl/krb5pac.idl
@@ -16,7 +16,8 @@ interface krb5pac
 {
 	typedef struct {
 		NTTIME logon_time;
-		[flag(STR_SIZE2|STR_NOTERM|STR_BYTESIZE)] string account_name;
+		[value(2*strlen_m(account_name))] uint16 size;
+		[charset(UTF16)] uint8 account_name[size];
 	} PAC_LOGON_NAME;
 
 	typedef [public,flag(NDR_PAHEX)] struct {
diff --git a/source/librpc/ndr/ndr_sec_helper.c b/source/librpc/ndr/ndr_sec_helper.c
index 30eaf9c..5a0178b 100644
--- a/source/librpc/ndr/ndr_sec_helper.c
+++ b/source/librpc/ndr/ndr_sec_helper.c
@@ -187,6 +187,9 @@ enum ndr_err_code ndr_pull_dom_sid28(struct ndr_pull *ndr, int ndr_flags, struct
 	if (!NDR_ERR_CODE_IS_SUCCESS(status)) {
 		/* handle a w2k bug which send random data in the buffer */
 		ZERO_STRUCTP(sid);
+	} else if (sid->num_auths == 0 && sid->sub_auths) {
+		talloc_free(sid->sub_auths);
+		sid->sub_auths = NULL;
 	}
 
 	return NDR_ERR_SUCCESS;


-- 
Samba Shared Repository


More information about the samba-cvs mailing list