diff options
Diffstat (limited to 'src/lib/libcrypto/x509v3/v3_alt.c')
| -rw-r--r-- | src/lib/libcrypto/x509v3/v3_alt.c | 27 |
1 files changed, 18 insertions, 9 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 | } |
