r2173: Fix asn1 BOOLEANs. Thanks to Love Hornquist-Astrand.
authorVolker Lendecke <vlendec@samba.org>
Wed, 1 Sep 2004 14:49:43 +0000 (14:49 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:58:29 +0000 (12:58 -0500)
Volker
(This used to be commit 53f58c053b643c8b45d2f9394faf8cfdd5005f6d)

source4/libcli/ldap/ldap.c
source4/libcli/util/asn1.c

index 7e60e48293e30fddccb16d5465c5d394550bc100..b7ae58f7f56c1d66d013dd235b4843e746fe2f77 100644 (file)
@@ -426,7 +426,7 @@ BOOL ldap_encode(struct ldap_message *msg, DATA_BLOB *result)
                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 @@ BOOL ldap_encode(struct ldap_message *msg, DATA_BLOB *result)
                              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 @@ BOOL ldap_decode(ASN1_DATA *data, struct ldap_message *msg)
                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 @@ BOOL ldap_decode(ASN1_DATA *data, struct ldap_message *msg)
                               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;
index 7e313bcd4aa7dd2776c3e104f1a8b0ba5719d7e1..b5db9b157ebcedbf2257106141aeeeb599bcbd77 100644 (file)
@@ -220,23 +220,14 @@ BOOL asn1_write_ContextSimple(ASN1_DATA *data, uint8_t num, DATA_BLOB *blob)
 
 /* 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);