From b384ce2bb444ac02da3a9cc93a73043b4563f647 Mon Sep 17 00:00:00 2001 From: beck <> Date: Fri, 13 Feb 2015 01:16:26 +0000 Subject: Don't leak memory on errors - fixes coverity issues 105353 105253 ok guenther@ jsg@ --- src/lib/libcrypto/x509v3/v3_pmaps.c | 13 +++++++++---- src/lib/libssl/src/crypto/x509v3/v3_pmaps.c | 13 +++++++++---- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/lib/libcrypto/x509v3/v3_pmaps.c b/src/lib/libcrypto/x509v3/v3_pmaps.c index 84c105892d..e8099d7f12 100644 --- a/src/lib/libcrypto/x509v3/v3_pmaps.c +++ b/src/lib/libcrypto/x509v3/v3_pmaps.c @@ -1,4 +1,4 @@ -/* $OpenBSD: v3_pmaps.c,v 1.6 2015/02/10 05:43:09 jsing Exp $ */ +/* $OpenBSD: v3_pmaps.c,v 1.7 2015/02/13 01:16:26 beck Exp $ */ /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL * project. */ @@ -126,9 +126,9 @@ static void * v2i_POLICY_MAPPINGS(const X509V3_EXT_METHOD *method, X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval) { - POLICY_MAPPINGS *pmaps; - POLICY_MAPPING *pmap; - ASN1_OBJECT *obj1, *obj2; + POLICY_MAPPINGS *pmaps = NULL; + POLICY_MAPPING *pmap = NULL; + ASN1_OBJECT *obj1 = NULL, *obj2 = NULL; CONF_VALUE *val; int i, rc; @@ -156,10 +156,12 @@ v2i_POLICY_MAPPINGS(const X509V3_EXT_METHOD *method, X509V3_CTX *ctx, } pmap->issuerDomainPolicy = obj1; pmap->subjectDomainPolicy = obj2; + obj1 = obj2 = NULL; if (sk_POLICY_MAPPING_push(pmaps, pmap) == 0) { rc = ERR_R_MALLOC_FAILURE; goto err; } + pmap = NULL; } return pmaps; @@ -168,5 +170,8 @@ err: X509V3err(X509V3_F_V2I_POLICY_MAPPINGS, rc); if (rc == X509V3_R_INVALID_OBJECT_IDENTIFIER) X509V3_conf_err(val); + ASN1_OBJECT_free(obj1); + ASN1_OBJECT_free(obj2); + POLICY_MAPPING_free(pmap); return NULL; } diff --git a/src/lib/libssl/src/crypto/x509v3/v3_pmaps.c b/src/lib/libssl/src/crypto/x509v3/v3_pmaps.c index 84c105892d..e8099d7f12 100644 --- a/src/lib/libssl/src/crypto/x509v3/v3_pmaps.c +++ b/src/lib/libssl/src/crypto/x509v3/v3_pmaps.c @@ -1,4 +1,4 @@ -/* $OpenBSD: v3_pmaps.c,v 1.6 2015/02/10 05:43:09 jsing Exp $ */ +/* $OpenBSD: v3_pmaps.c,v 1.7 2015/02/13 01:16:26 beck Exp $ */ /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL * project. */ @@ -126,9 +126,9 @@ static void * v2i_POLICY_MAPPINGS(const X509V3_EXT_METHOD *method, X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval) { - POLICY_MAPPINGS *pmaps; - POLICY_MAPPING *pmap; - ASN1_OBJECT *obj1, *obj2; + POLICY_MAPPINGS *pmaps = NULL; + POLICY_MAPPING *pmap = NULL; + ASN1_OBJECT *obj1 = NULL, *obj2 = NULL; CONF_VALUE *val; int i, rc; @@ -156,10 +156,12 @@ v2i_POLICY_MAPPINGS(const X509V3_EXT_METHOD *method, X509V3_CTX *ctx, } pmap->issuerDomainPolicy = obj1; pmap->subjectDomainPolicy = obj2; + obj1 = obj2 = NULL; if (sk_POLICY_MAPPING_push(pmaps, pmap) == 0) { rc = ERR_R_MALLOC_FAILURE; goto err; } + pmap = NULL; } return pmaps; @@ -168,5 +170,8 @@ err: X509V3err(X509V3_F_V2I_POLICY_MAPPINGS, rc); if (rc == X509V3_R_INVALID_OBJECT_IDENTIFIER) X509V3_conf_err(val); + ASN1_OBJECT_free(obj1); + ASN1_OBJECT_free(obj2); + POLICY_MAPPING_free(pmap); return NULL; } -- cgit v1.2.3-55-g6feb