summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/libcrypto/x509v3/v3_pmaps.c13
-rw-r--r--src/lib/libssl/src/crypto/x509v3/v3_pmaps.c13
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 @@
1/* $OpenBSD: v3_pmaps.c,v 1.6 2015/02/10 05:43:09 jsing Exp $ */ 1/* $OpenBSD: v3_pmaps.c,v 1.7 2015/02/13 01:16:26 beck Exp $ */
2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project. 3 * project.
4 */ 4 */
@@ -126,9 +126,9 @@ static void *
126v2i_POLICY_MAPPINGS(const X509V3_EXT_METHOD *method, X509V3_CTX *ctx, 126v2i_POLICY_MAPPINGS(const X509V3_EXT_METHOD *method, X509V3_CTX *ctx,
127 STACK_OF(CONF_VALUE) *nval) 127 STACK_OF(CONF_VALUE) *nval)
128{ 128{
129 POLICY_MAPPINGS *pmaps; 129 POLICY_MAPPINGS *pmaps = NULL;
130 POLICY_MAPPING *pmap; 130 POLICY_MAPPING *pmap = NULL;
131 ASN1_OBJECT *obj1, *obj2; 131 ASN1_OBJECT *obj1 = NULL, *obj2 = NULL;
132 CONF_VALUE *val; 132 CONF_VALUE *val;
133 int i, rc; 133 int i, rc;
134 134
@@ -156,10 +156,12 @@ v2i_POLICY_MAPPINGS(const X509V3_EXT_METHOD *method, X509V3_CTX *ctx,
156 } 156 }
157 pmap->issuerDomainPolicy = obj1; 157 pmap->issuerDomainPolicy = obj1;
158 pmap->subjectDomainPolicy = obj2; 158 pmap->subjectDomainPolicy = obj2;
159 obj1 = obj2 = NULL;
159 if (sk_POLICY_MAPPING_push(pmaps, pmap) == 0) { 160 if (sk_POLICY_MAPPING_push(pmaps, pmap) == 0) {
160 rc = ERR_R_MALLOC_FAILURE; 161 rc = ERR_R_MALLOC_FAILURE;
161 goto err; 162 goto err;
162 } 163 }
164 pmap = NULL;
163 } 165 }
164 return pmaps; 166 return pmaps;
165 167
@@ -168,5 +170,8 @@ err:
168 X509V3err(X509V3_F_V2I_POLICY_MAPPINGS, rc); 170 X509V3err(X509V3_F_V2I_POLICY_MAPPINGS, rc);
169 if (rc == X509V3_R_INVALID_OBJECT_IDENTIFIER) 171 if (rc == X509V3_R_INVALID_OBJECT_IDENTIFIER)
170 X509V3_conf_err(val); 172 X509V3_conf_err(val);
173 ASN1_OBJECT_free(obj1);
174 ASN1_OBJECT_free(obj2);
175 POLICY_MAPPING_free(pmap);
171 return NULL; 176 return NULL;
172} 177}
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 @@
1/* $OpenBSD: v3_pmaps.c,v 1.6 2015/02/10 05:43:09 jsing Exp $ */ 1/* $OpenBSD: v3_pmaps.c,v 1.7 2015/02/13 01:16:26 beck Exp $ */
2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project. 3 * project.
4 */ 4 */
@@ -126,9 +126,9 @@ static void *
126v2i_POLICY_MAPPINGS(const X509V3_EXT_METHOD *method, X509V3_CTX *ctx, 126v2i_POLICY_MAPPINGS(const X509V3_EXT_METHOD *method, X509V3_CTX *ctx,
127 STACK_OF(CONF_VALUE) *nval) 127 STACK_OF(CONF_VALUE) *nval)
128{ 128{
129 POLICY_MAPPINGS *pmaps; 129 POLICY_MAPPINGS *pmaps = NULL;
130 POLICY_MAPPING *pmap; 130 POLICY_MAPPING *pmap = NULL;
131 ASN1_OBJECT *obj1, *obj2; 131 ASN1_OBJECT *obj1 = NULL, *obj2 = NULL;
132 CONF_VALUE *val; 132 CONF_VALUE *val;
133 int i, rc; 133 int i, rc;
134 134
@@ -156,10 +156,12 @@ v2i_POLICY_MAPPINGS(const X509V3_EXT_METHOD *method, X509V3_CTX *ctx,
156 } 156 }
157 pmap->issuerDomainPolicy = obj1; 157 pmap->issuerDomainPolicy = obj1;
158 pmap->subjectDomainPolicy = obj2; 158 pmap->subjectDomainPolicy = obj2;
159 obj1 = obj2 = NULL;
159 if (sk_POLICY_MAPPING_push(pmaps, pmap) == 0) { 160 if (sk_POLICY_MAPPING_push(pmaps, pmap) == 0) {
160 rc = ERR_R_MALLOC_FAILURE; 161 rc = ERR_R_MALLOC_FAILURE;
161 goto err; 162 goto err;
162 } 163 }
164 pmap = NULL;
163 } 165 }
164 return pmaps; 166 return pmaps;
165 167
@@ -168,5 +170,8 @@ err:
168 X509V3err(X509V3_F_V2I_POLICY_MAPPINGS, rc); 170 X509V3err(X509V3_F_V2I_POLICY_MAPPINGS, rc);
169 if (rc == X509V3_R_INVALID_OBJECT_IDENTIFIER) 171 if (rc == X509V3_R_INVALID_OBJECT_IDENTIFIER)
170 X509V3_conf_err(val); 172 X509V3_conf_err(val);
173 ASN1_OBJECT_free(obj1);
174 ASN1_OBJECT_free(obj2);
175 POLICY_MAPPING_free(pmap);
171 return NULL; 176 return NULL;
172} 177}