summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/x509v3
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/x509v3')
-rw-r--r--src/lib/libcrypto/x509v3/v3_alt.c27
-rw-r--r--src/lib/libcrypto/x509v3/v3_extku.c10
2 files changed, 26 insertions, 11 deletions
diff --git a/src/lib/libcrypto/x509v3/v3_alt.c b/src/lib/libcrypto/x509v3/v3_alt.c
index 7ae4b6bd97..2592288bdb 100644
--- a/src/lib/libcrypto/x509v3/v3_alt.c
+++ b/src/lib/libcrypto/x509v3/v3_alt.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: v3_alt.c,v 1.21 2014/07/11 08:44:49 jsing Exp $ */ 1/* $OpenBSD: v3_alt.c,v 1.22 2014/10/28 05:46:56 miod 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 */
@@ -253,21 +253,24 @@ v2i_issuer_alt(X509V3_EXT_METHOD *method, X509V3_CTX *ctx,
253 CONF_VALUE *cnf; 253 CONF_VALUE *cnf;
254 int i; 254 int i;
255 255
256 if (!(gens = sk_GENERAL_NAME_new_null())) { 256 if ((gens = sk_GENERAL_NAME_new_null()) == NULL) {
257 X509V3err(X509V3_F_V2I_ISSUER_ALT, ERR_R_MALLOC_FAILURE); 257 X509V3err(X509V3_F_V2I_ISSUER_ALT, ERR_R_MALLOC_FAILURE);
258 return NULL; 258 return NULL;
259 } 259 }
260 for (i = 0; i < sk_CONF_VALUE_num(nval); i++) { 260 for (i = 0; i < sk_CONF_VALUE_num(nval); i++) {
261 cnf = sk_CONF_VALUE_value(nval, i); 261 cnf = sk_CONF_VALUE_value(nval, i);
262 if (!name_cmp(cnf->name, "issuer") && cnf->value && 262 if (name_cmp(cnf->name, "issuer") == 0 && cnf->value != NULL &&
263 !strcmp(cnf->value, "copy")) { 263 strcmp(cnf->value, "copy") == 0) {
264 if (!copy_issuer(ctx, gens)) 264 if (!copy_issuer(ctx, gens))
265 goto err; 265 goto err;
266 } else { 266 } else {
267 GENERAL_NAME *gen; 267 GENERAL_NAME *gen;
268 if (!(gen = v2i_GENERAL_NAME(method, ctx, cnf))) 268 if ((gen = v2i_GENERAL_NAME(method, ctx, cnf)) == NULL)
269 goto err; 269 goto err;
270 sk_GENERAL_NAME_push(gens, gen); 270 if (sk_GENERAL_NAME_push(gens, gen) == 0) {
271 GENERAL_NAME_free(gen);
272 goto err;
273 }
271 } 274 }
272 } 275 }
273 return gens; 276 return gens;
@@ -344,7 +347,10 @@ v2i_subject_alt(X509V3_EXT_METHOD *method, X509V3_CTX *ctx,
344 GENERAL_NAME *gen; 347 GENERAL_NAME *gen;
345 if (!(gen = v2i_GENERAL_NAME(method, ctx, cnf))) 348 if (!(gen = v2i_GENERAL_NAME(method, ctx, cnf)))
346 goto err; 349 goto err;
347 sk_GENERAL_NAME_push(gens, gen); 350 if (sk_GENERAL_NAME_push(gens, gen) == 0) {
351 GENERAL_NAME_free(gen);
352 goto err;
353 }
348 } 354 }
349 } 355 }
350 return gens; 356 return gens;
@@ -429,7 +435,10 @@ v2i_GENERAL_NAMES(const X509V3_EXT_METHOD *method, X509V3_CTX *ctx,
429 cnf = sk_CONF_VALUE_value(nval, i); 435 cnf = sk_CONF_VALUE_value(nval, i);
430 if (!(gen = v2i_GENERAL_NAME(method, ctx, cnf))) 436 if (!(gen = v2i_GENERAL_NAME(method, ctx, cnf)))
431 goto err; 437 goto err;
432 sk_GENERAL_NAME_push(gens, gen); 438 if (sk_GENERAL_NAME_push(gens, gen) == 0) {
439 GENERAL_NAME_free(gen);
440 goto err;
441 }
433 } 442 }
434 return gens; 443 return gens;
435 444
@@ -537,7 +546,7 @@ a2i_GENERAL_NAME(GENERAL_NAME *out, const X509V3_EXT_METHOD *method,
537 return gen; 546 return gen;
538 547
539err: 548err:
540 if (!out) 549 if (out == NULL)
541 GENERAL_NAME_free(gen); 550 GENERAL_NAME_free(gen);
542 return NULL; 551 return NULL;
543} 552}
diff --git a/src/lib/libcrypto/x509v3/v3_extku.c b/src/lib/libcrypto/x509v3/v3_extku.c
index 0f36a99525..a9f1d6da6e 100644
--- a/src/lib/libcrypto/x509v3/v3_extku.c
+++ b/src/lib/libcrypto/x509v3/v3_extku.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: v3_extku.c,v 1.9 2014/07/11 08:44:49 jsing Exp $ */ 1/* $OpenBSD: v3_extku.c,v 1.10 2014/10/28 05:46:56 miod 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 1999. 3 * project 1999.
4 */ 4 */
@@ -144,7 +144,13 @@ v2i_EXTENDED_KEY_USAGE(const X509V3_EXT_METHOD *method, X509V3_CTX *ctx,
144 X509V3_conf_err(val); 144 X509V3_conf_err(val);
145 return NULL; 145 return NULL;
146 } 146 }
147 sk_ASN1_OBJECT_push(extku, objtmp); 147 if (sk_ASN1_OBJECT_push(extku, objtmp) == 0) {
148 ASN1_OBJECT_free(objtmp);
149 sk_ASN1_OBJECT_pop_free(extku, ASN1_OBJECT_free);
150 X509V3err(X509V3_F_V2I_EXTENDED_KEY_USAGE,
151 ERR_R_MALLOC_FAILURE);
152 return NULL;
153 }
148 } 154 }
149 return extku; 155 return extku;
150} 156}