From: Howard Chu Date: Mon, 2 Sep 2002 13:46:56 +0000 (+0000) Subject: Fix ldap_X509dn2bv, OpenSSL gives us DN attributeTypes in EBCDIC X-Git-Tag: NO_SLAP_OP_BLOCKS~1042 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=90b1e7bd4505cc4159361ddd016b05a7c0f4ded7;p=openldap Fix ldap_X509dn2bv, OpenSSL gives us DN attributeTypes in EBCDIC --- diff --git a/libraries/libldap/getdn.c b/libraries/libldap/getdn.c index 781dca07af..3e5f488bcc 100644 --- a/libraries/libldap/getdn.c +++ b/libraries/libldap/getdn.c @@ -3390,9 +3390,16 @@ ldap_X509dn2bv( void *x509_name, struct berval *bv, LDAPDN_rewrite_func *func, goto get_oid; newAVA->la_attr.bv_val = (char *)OBJ_nid2sn( n ); newAVA->la_attr.bv_len = strlen( newAVA->la_attr.bv_val ); +#ifdef HAVE_EBCDIC + newAVA->la_attr.bv_val = LDAP_STRDUP( newAVA->la_attr.bv_val ); + __etoa( newAVA->la_attr.bv_val ); +#endif } else { get_oid: newAVA->la_attr.bv_val = oidptr; newAVA->la_attr.bv_len = OBJ_obj2txt( oidptr, oidrem, obj, 1 ); +#ifdef HAVE_EBCDIC + __etoa( newAVA->la_attr.bv_val ); +#endif oidptr += newAVA->la_attr.bv_len + 1; oidrem -= newAVA->la_attr.bv_len + 1; @@ -3468,6 +3475,9 @@ to_utf8: rc = ldap_ucs_to_utf8s( &Val, csize, &newAVA->la_value ); nomem: for (;baseAVA < newAVA; baseAVA++) { LDAP_FREE( baseAVA->la_value.bv_val ); +#ifdef HAVE_EBCDIC + if ( !func ) LDAP_FREE( baseAVA->la_attr.bv_val ); +#endif } if ( oidsize != 0 )