From: Matt Caswell Date: Thu, 28 Apr 2016 13:00:10 +0000 (+0100) Subject: Don't leak memory on set_reasons() error path X-Git-Tag: OpenSSL_1_1_0-pre6~600 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=723412d4d8c8466b1d90b8f348c2c8f24c692f59;p=thirdparty%2Fopenssl.git Don't leak memory on set_reasons() error path The set_reasons() function in v3_crld.c leaks a STACK_OF(CONF_VALUE) object on an error path. Reviewed-by: Richard Levitte --- diff --git a/crypto/x509v3/v3_crld.c b/crypto/x509v3/v3_crld.c index 221eedfaeb9..c4c77f18510 100644 --- a/crypto/x509v3/v3_crld.c +++ b/crypto/x509v3/v3_crld.c @@ -150,10 +150,10 @@ static int set_reasons(ASN1_BIT_STRING **preas, char *value) const char *bnam; int i, ret = 0; rsk = X509V3_parse_list(value); - if (!rsk) - return 0; - if (*preas) + if (rsk == NULL) return 0; + if (*preas != NULL) + goto err; for (i = 0; i < sk_CONF_VALUE_num(rsk); i++) { bnam = sk_CONF_VALUE_value(rsk, i)->name; if (*preas == NULL) {