diff options
author | Dr. Stephen Henson <steve@openssl.org> | 2000-08-24 23:24:18 +0000 |
---|---|---|
committer | Dr. Stephen Henson <steve@openssl.org> | 2000-08-24 23:24:18 +0000 |
commit | d428bf8c568c617bb3c3bd0ac3b326298e7b34b9 (patch) | |
tree | b2941d622c7d4dbd526afa82a9308016a04321fe /crypto/asn1/a_mbstr.c | |
parent | d096b524afbdc371032d96d22f1686d88bfba0e9 (diff) |
New option to CA.pl to sign request using CA extensions.
This allows intermediate CAs to be created more easily.
PKCS12_create() now checks private key matches certificate.
Fix typo in x509 app.
Update docs.
New function ASN1_STRING_to_UTF8() converts any ASN1_STRING
type to UTF8.
Diffstat (limited to 'crypto/asn1/a_mbstr.c')
-rw-r--r-- | crypto/asn1/a_mbstr.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/crypto/asn1/a_mbstr.c b/crypto/asn1/a_mbstr.c index 42f5d3b01e..9842b653e6 100644 --- a/crypto/asn1/a_mbstr.c +++ b/crypto/asn1/a_mbstr.c @@ -92,6 +92,7 @@ int ASN1_mbstring_ncopy(ASN1_STRING **out, const unsigned char *in, int len, { int str_type; int ret; + char free_out; int outform, outlen; ASN1_STRING *dest; unsigned char *p; @@ -180,6 +181,7 @@ int ASN1_mbstring_ncopy(ASN1_STRING **out, const unsigned char *in, int len, } if(!out) return str_type; if(*out) { + free_out = 0; dest = *out; if(dest->data) { dest->length = 0; @@ -188,6 +190,7 @@ int ASN1_mbstring_ncopy(ASN1_STRING **out, const unsigned char *in, int len, } dest->type = str_type; } else { + free_out = 1; dest = ASN1_STRING_type_new(str_type); if(!dest) { ASN1err(ASN1_F_ASN1_MBSTRING_COPY, @@ -229,7 +232,7 @@ int ASN1_mbstring_ncopy(ASN1_STRING **out, const unsigned char *in, int len, break; } if(!(p = OPENSSL_malloc(outlen + 1))) { - ASN1_STRING_free(dest); + if(free_out) ASN1_STRING_free(dest); ASN1err(ASN1_F_ASN1_MBSTRING_COPY,ERR_R_MALLOC_FAILURE); return -1; } |