diff options
Diffstat (limited to 'src/lib/libcrypto/x509v3')
-rw-r--r-- | src/lib/libcrypto/x509v3/v3_alt.c | 27 | ||||
-rw-r--r-- | src/lib/libcrypto/x509v3/v3_extku.c | 10 |
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 | ||
539 | err: | 548 | err: |
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 | } |