diff --git a/crypto/x509v3/v3_utl.c b/crypto/x509v3/v3_utl.c index 05edd85cf47ea277426fde7dab41b1523246fdd8..7dc9a4533efa26a7decc4b3dd3539382fccdf2b2 100644 --- a/crypto/x509v3/v3_utl.c +++ b/crypto/x509v3/v3_utl.c @@ -469,6 +469,7 @@ static int append_ia5(STACK_OF(OPENSSL_STRING) **sk, const ASN1_IA5STRING *email return 1; emtmp = OPENSSL_strdup((char *)email->data); if (emtmp == NULL || !sk_OPENSSL_STRING_push(*sk, emtmp)) { + OPENSSL_free(emtmp); /* free on push failure */ X509_email_free(*sk); *sk = NULL; return 0;