summaryrefslogtreecommitdiffstats
path: root/crypto/x509
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/x509')
-rw-r--r--crypto/x509/x509.h2
-rw-r--r--crypto/x509/x509_cmp.c9
2 files changed, 7 insertions, 4 deletions
diff --git a/crypto/x509/x509.h b/crypto/x509/x509.h
index 3ac3c5a4a4..39a9c4c0ab 100644
--- a/crypto/x509/x509.h
+++ b/crypto/x509/x509.h
@@ -503,10 +503,12 @@ typedef struct Netscape_certificate_sequence
STACK_OF(X509) *certs;
} NETSCAPE_CERT_SEQUENCE;
+/* Unused (and iv length is wrong)
typedef struct CBCParameter_st
{
unsigned char iv[8];
} CBC_PARAM;
+*/
/* Password based encryption structure */
diff --git a/crypto/x509/x509_cmp.c b/crypto/x509/x509_cmp.c
index 2b5aa09ad9..9b28911409 100644
--- a/crypto/x509/x509_cmp.c
+++ b/crypto/x509/x509_cmp.c
@@ -82,13 +82,14 @@ unsigned long X509_issuer_and_serial_hash(X509 *a)
unsigned long ret=0;
EVP_MD_CTX ctx;
unsigned char md[16];
- char str[256];
+ char *f;
EVP_MD_CTX_init(&ctx);
- X509_NAME_oneline(a->cert_info->issuer,str,256);
- ret=strlen(str);
+ f=X509_NAME_oneline(a->cert_info->issuer,NULL,0);
+ ret=strlen(f);
EVP_DigestInit_ex(&ctx, EVP_md5(), NULL);
- EVP_DigestUpdate(&ctx,(unsigned char *)str,ret);
+ EVP_DigestUpdate(&ctx,(unsigned char *)f,ret);
+ OPENSSL_free(f);
EVP_DigestUpdate(&ctx,(unsigned char *)a->cert_info->serialNumber->data,
(unsigned long)a->cert_info->serialNumber->length);
EVP_DigestFinal_ex(&ctx,&(md[0]),NULL);