diff --git a/CHANGES b/CHANGES index a3ee3b0bc..a885be40f 100644 --- a/CHANGES +++ b/CHANGES @@ -4,6 +4,9 @@ Changes between 0.9.8r and 0.9.8s [xx XXX xxxx] + *) Fix x509_name_ex_d2i memory leak on bad inputs. + [Bodo Moeller] + *) Add protection against ECDSA timing attacks as mentioned in the paper by Billy Bob Brumley and Nicola Tuveri, see: diff --git a/crypto/asn1/x_name.c b/crypto/asn1/x_name.c index 04380abc3..9a1a9f415 100644 --- a/crypto/asn1/x_name.c +++ b/crypto/asn1/x_name.c @@ -196,7 +196,9 @@ static int x509_name_ex_d2i(ASN1_VALUE **val, const unsigned char **in, long len *val = nm.a; *in = p; return ret; - err: +err: + if (nm.x != NULL) + X509_NAME_free(nm.x); ASN1err(ASN1_F_X509_NAME_EX_D2I, ERR_R_NESTED_ASN1_ERROR); return 0; }