svn commit: samba r26613 - in branches/SAMBA_4_0/source/libcli: ldap util

abartlet at samba.org abartlet at samba.org
Thu Dec 27 07:47:12 GMT 2007


Author: abartlet
Date: 2007-12-27 07:47:11 +0000 (Thu, 27 Dec 2007)
New Revision: 26613

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=26613

Log:
Add a function to write a DATA_BLOB into an LDAPString.

This respects the length set in the DATA_BLOB, rather than hoping to
see NULL termination of the data pointer.

(found testing the Ambigious Name Resolution code against OpenLDAP).

Andrew Bartlett

Modified:
   branches/SAMBA_4_0/source/libcli/ldap/ldap.c
   branches/SAMBA_4_0/source/libcli/util/asn1.c


Changeset:
Modified: branches/SAMBA_4_0/source/libcli/ldap/ldap.c
===================================================================
--- branches/SAMBA_4_0/source/libcli/ldap/ldap.c	2007-12-27 07:45:22 UTC (rev 26612)
+++ branches/SAMBA_4_0/source/libcli/ldap/ldap.c	2007-12-27 07:47:11 UTC (rev 26613)
@@ -77,7 +77,7 @@
 		i = 0;
 		if ( ! tree->u.substring.start_with_wildcard) {
 			asn1_push_tag(data, ASN1_CONTEXT_SIMPLE(0));
-			asn1_write_LDAPString(data, (char *)tree->u.substring.chunks[i]->data);
+			asn1_write_DATA_BLOB_LDAPString(data, tree->u.substring.chunks[i]);
 			asn1_pop_tag(data);
 			i++;
 		}
@@ -91,7 +91,7 @@
 				ctx = 1;
 			}
 			asn1_push_tag(data, ASN1_CONTEXT_SIMPLE(ctx));
-			asn1_write_LDAPString(data, (char *)tree->u.substring.chunks[i]->data);
+			asn1_write_DATA_BLOB_LDAPString(data, tree->u.substring.chunks[i]);
 			asn1_pop_tag(data);
 			i++;
 		}
@@ -157,7 +157,7 @@
 			asn1_pop_tag(data);
 		}
 		asn1_push_tag(data, ASN1_CONTEXT_SIMPLE(3));
-		asn1_write_LDAPString(data, (char *)tree->u.extended.value.data);
+		asn1_write_DATA_BLOB_LDAPString(data, &tree->u.extended.value);
 		asn1_pop_tag(data);
 		asn1_push_tag(data, ASN1_CONTEXT_SIMPLE(4));
 		asn1_write_uint8(data, tree->u.extended.dnAttributes);

Modified: branches/SAMBA_4_0/source/libcli/util/asn1.c
===================================================================
--- branches/SAMBA_4_0/source/libcli/util/asn1.c	2007-12-27 07:45:22 UTC (rev 26612)
+++ branches/SAMBA_4_0/source/libcli/util/asn1.c	2007-12-27 07:47:11 UTC (rev 26613)
@@ -285,6 +285,13 @@
 	return !data->has_error;
 }
 
+/* write a LDAP string from a DATA_BLOB */
+bool asn1_write_DATA_BLOB_LDAPString(struct asn1_data *data, const DATA_BLOB *s)
+{
+	asn1_write(data, s->data, s->length);
+	return !data->has_error;
+}
+
 /* write a general string */
 bool asn1_write_GeneralString(struct asn1_data *data, const char *s)
 {



More information about the samba-cvs mailing list