char *result, *ptr;
X509_NAME_ENTRY *xsne;
int i, j, n, idx = 0;
- unsigned char *data_ptr;
- int data_len;
apr_size_t varlen;
/* if an _N suffix is used, find the Nth attribute of given name */
X509_NAME_get_entries(xsname), j);
n =OBJ_obj2nid((ASN1_OBJECT *)X509_NAME_ENTRY_get_object(xsne));
- data_ptr = X509_NAME_ENTRY_get_data_ptr(xsne);
- data_len = X509_NAME_ENTRY_get_data_len(xsne);
if (n == ssl_var_lookup_ssl_cert_dn_rec[i].nid && idx-- == 0) {
- result = apr_palloc(p, data_len+1);
- apr_cpystrn(result, (char *)data_ptr, data_len+1);
+ result = apr_pstrmemdup(p,
+ X509_NAME_ENTRY_get_data_ptr(xsne),
+ X509_NAME_ENTRY_get_data_len(xsne));
#ifdef CHARSET_EBCDIC
- ascii2ebcdic(result, result, xsne->value->length);
+ ascii2ebcdic(result, result,
+ X509_NAME_ENTRY_get_data_len(xsne));
#endif /* CHARSET_EBCDIC */
- result[data_len] = NUL;
break;
}
}