Author: vlendec Date: 2004-09-01 14:49:43 +0000 (Wed, 01 Sep 2004) New Revision: 2173
WebSVN: http://websvn.samba.org/websvn/changeset.php?rep=samba&path=/branches/SAMBA_4_0/source/libcli&rev=2173&nolog=1 Log: Fix asn1 BOOLEANs. Thanks to Love Hornquist-Astrand. Volker 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 2004-09-01 14:48:27 UTC (rev 2172) +++ branches/SAMBA_4_0/source/libcli/ldap/ldap.c 2004-09-01 14:49:43 UTC (rev 2173) @@ -426,7 +426,7 @@ asn1_write_enumerated(&data, r->deref); asn1_write_Integer(&data, r->sizelimit); asn1_write_Integer(&data, r->timelimit); - asn1_write_BOOLEAN2(&data, r->attributesonly); + asn1_write_BOOLEAN(&data, r->attributesonly); { TALLOC_CTX *mem_ctx = talloc_init("ldap_parse_tree"); @@ -565,7 +565,7 @@ ASN1_APPLICATION(LDAP_TAG_ModifyDNRequest)); asn1_write_OctetString(&data, r->dn, strlen(r->dn)); asn1_write_OctetString(&data, r->newrdn, strlen(r->newrdn)); - asn1_write_BOOLEAN2(&data, r->deleteolddn); + asn1_write_BOOLEAN(&data, r->deleteolddn); if (r->newsuperior != NULL) { asn1_push_tag(&data, ASN1_CONTEXT_SIMPLE(0)); asn1_write(&data, r->newsuperior, @@ -893,7 +893,7 @@ asn1_read_enumerated(data, (int *)&(r->deref)); asn1_read_Integer(data, &r->sizelimit); asn1_read_Integer(data, &r->timelimit); - asn1_read_BOOLEAN2(data, &r->attributesonly); + asn1_read_BOOLEAN(data, &r->attributesonly); /* Maybe create a TALLOC_CTX for the filter? This can waste * quite a bit of memory recursing down. */ @@ -1039,7 +1039,7 @@ ASN1_APPLICATION(LDAP_TAG_ModifyDNRequest)); asn1_read_OctetString_talloc(msg->mem_ctx, data, &r->dn); asn1_read_OctetString_talloc(msg->mem_ctx, data, &r->newrdn); - asn1_read_BOOLEAN2(data, &r->deleteolddn); + asn1_read_BOOLEAN(data, &r->deleteolddn); r->newsuperior = NULL; if (asn1_tag_remaining(data) > 0) { int len; Modified: branches/SAMBA_4_0/source/libcli/util/asn1.c =================================================================== --- branches/SAMBA_4_0/source/libcli/util/asn1.c 2004-09-01 14:48:27 UTC (rev 2172) +++ branches/SAMBA_4_0/source/libcli/util/asn1.c 2004-09-01 14:49:43 UTC (rev 2173) @@ -221,22 +221,13 @@ /* write a BOOLEAN */ BOOL asn1_write_BOOLEAN(ASN1_DATA *data, BOOL v) { - asn1_write_uint8(data, ASN1_BOOLEAN); - asn1_write_uint8(data, v); - return !data->has_error; -} - -/* write a BOOLEAN - hmm, I suspect this one is the correct one, and the - above boolean is bogus. Need to check */ -BOOL asn1_write_BOOLEAN2(ASN1_DATA *data, BOOL v) -{ asn1_push_tag(data, ASN1_BOOLEAN); - asn1_write_uint8(data, v); + asn1_write_uint8(data, v ? 0xFF : 0); asn1_pop_tag(data); return !data->has_error; } -BOOL asn1_read_BOOLEAN2(ASN1_DATA *data, BOOL *v) +BOOL asn1_read_BOOLEAN(ASN1_DATA *data, BOOL *v) { asn1_start_tag(data, ASN1_BOOLEAN); asn1_read_uint8(data, (uint8 *)v);
