svn commit: samba r2508 - in branches/SAMBA_4_0/source/libcli/ldap:
.
metze at samba.org
metze at samba.org
Wed Sep 22 10:42:58 GMT 2004
Author: metze
Date: 2004-09-22 10:42:58 +0000 (Wed, 22 Sep 2004)
New Revision: 2508
WebSVN: http://websvn.samba.org/websvn/changeset.php?rep=samba&path=/branches/SAMBA_4_0/source/libcli/ldap&rev=2508&nolog=1
Log:
- implemented ldap_decode() for UnbindRequest and ExtendedRequest
- fail when we got a wrong tag in ldap_decode()
metze
Modified:
branches/SAMBA_4_0/source/libcli/ldap/ldap.c
Changeset:
Modified: branches/SAMBA_4_0/source/libcli/ldap/ldap.c
===================================================================
--- branches/SAMBA_4_0/source/libcli/ldap/ldap.c 2004-09-22 10:42:09 UTC (rev 2507)
+++ branches/SAMBA_4_0/source/libcli/ldap/ldap.c 2004-09-22 10:42:58 UTC (rev 2508)
@@ -879,8 +879,10 @@
break;
}
- case ASN1_APPLICATION(LDAP_TAG_UnbindRequest): {
+ case ASN1_APPLICATION_SIMPLE(LDAP_TAG_UnbindRequest): {
msg->type = LDAP_TAG_UnbindRequest;
+ asn1_start_tag(data, ASN1_APPLICATION_SIMPLE(LDAP_TAG_UnbindRequest));
+ asn1_end_tag(data);
break;
}
@@ -1087,8 +1089,29 @@
}
case ASN1_APPLICATION(LDAP_TAG_ExtendedRequest): {
-/* struct ldap_ExtendedRequest *r = &msg->r.ExtendedRequest; */
+ struct ldap_ExtendedRequest *r = &msg->r.ExtendedRequest;
+ DATA_BLOB tmp_blob = data_blob(NULL, 0);
+
msg->type = LDAP_TAG_ExtendedRequest;
+ asn1_start_tag(data,ASN1_APPLICATION(LDAP_TAG_ExtendedRequest));
+ if (!asn1_read_ContextSimple(data, 0, &tmp_blob)) {
+ return False;
+ }
+ r->oid = blob2string_talloc(msg->mem_ctx, tmp_blob);
+ data_blob_free(&tmp_blob);
+ if (!r->oid) {
+ return False;
+ }
+
+ if (asn1_peek_tag(data, ASN1_CONTEXT_SIMPLE(1))) {
+ asn1_read_ContextSimple(data, 1, &tmp_blob);
+ r->value = data_blob_talloc(msg->mem_ctx, tmp_blob.data, tmp_blob.length);
+ data_blob_free(&tmp_blob);
+ } else {
+ r->value = data_blob(NULL, 0);
+ }
+
+ asn1_end_tag(data);
break;
}
@@ -1105,7 +1128,8 @@
r->value.length = 0;
break;
}
-
+ default:
+ return False;
}
asn1_end_tag(data);
More information about the samba-cvs
mailing list