diff options
author | beck <> | 2017-01-29 17:49:23 +0000 |
---|---|---|
committer | beck <> | 2017-01-29 17:49:23 +0000 |
commit | 957b11334a7afb14537322f0e4795b2e368b3f59 (patch) | |
tree | 1a54abba678898ee5270ae4f3404a50ee9a92eea /src/lib/libcrypto/x509v3/v3_alt.c | |
parent | df96e020e729c6c37a8c7fe311fdd1fe6a8718c5 (diff) | |
download | openbsd-957b11334a7afb14537322f0e4795b2e368b3f59.tar.gz openbsd-957b11334a7afb14537322f0e4795b2e368b3f59.tar.bz2 openbsd-957b11334a7afb14537322f0e4795b2e368b3f59.zip |
Send the function codes from the error functions to the bit bucket,
as was done earlier in libssl. Thanks inoguchi@ for noticing
libssl had more reacharounds into this.
ok jsing@ inoguchi@
Diffstat (limited to 'src/lib/libcrypto/x509v3/v3_alt.c')
-rw-r--r-- | src/lib/libcrypto/x509v3/v3_alt.c | 49 |
1 files changed, 21 insertions, 28 deletions
diff --git a/src/lib/libcrypto/x509v3/v3_alt.c b/src/lib/libcrypto/x509v3/v3_alt.c index 23867ea449..746339bebd 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.26 2016/12/30 15:54:49 jsing Exp $ */ | 1 | /* $OpenBSD: v3_alt.c,v 1.27 2017/01/29 17:49:23 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 | */ |
@@ -279,7 +279,7 @@ v2i_issuer_alt(X509V3_EXT_METHOD *method, X509V3_CTX *ctx, | |||
279 | int i; | 279 | int i; |
280 | 280 | ||
281 | if ((gens = sk_GENERAL_NAME_new_null()) == NULL) { | 281 | if ((gens = sk_GENERAL_NAME_new_null()) == NULL) { |
282 | X509V3err(X509V3_F_V2I_ISSUER_ALT, ERR_R_MALLOC_FAILURE); | 282 | X509V3error(ERR_R_MALLOC_FAILURE); |
283 | return NULL; | 283 | return NULL; |
284 | } | 284 | } |
285 | for (i = 0; i < sk_CONF_VALUE_num(nval); i++) { | 285 | for (i = 0; i < sk_CONF_VALUE_num(nval); i++) { |
@@ -318,7 +318,7 @@ copy_issuer(X509V3_CTX *ctx, GENERAL_NAMES *gens) | |||
318 | if (ctx && (ctx->flags == CTX_TEST)) | 318 | if (ctx && (ctx->flags == CTX_TEST)) |
319 | return 1; | 319 | return 1; |
320 | if (!ctx || !ctx->issuer_cert) { | 320 | if (!ctx || !ctx->issuer_cert) { |
321 | X509V3err(X509V3_F_COPY_ISSUER, X509V3_R_NO_ISSUER_DETAILS); | 321 | X509V3error(X509V3_R_NO_ISSUER_DETAILS); |
322 | goto err; | 322 | goto err; |
323 | } | 323 | } |
324 | i = X509_get_ext_by_NID(ctx->issuer_cert, NID_subject_alt_name, -1); | 324 | i = X509_get_ext_by_NID(ctx->issuer_cert, NID_subject_alt_name, -1); |
@@ -326,14 +326,14 @@ copy_issuer(X509V3_CTX *ctx, GENERAL_NAMES *gens) | |||
326 | return 1; | 326 | return 1; |
327 | if (!(ext = X509_get_ext(ctx->issuer_cert, i)) || | 327 | if (!(ext = X509_get_ext(ctx->issuer_cert, i)) || |
328 | !(ialt = X509V3_EXT_d2i(ext))) { | 328 | !(ialt = X509V3_EXT_d2i(ext))) { |
329 | X509V3err(X509V3_F_COPY_ISSUER, X509V3_R_ISSUER_DECODE_ERROR); | 329 | X509V3error(X509V3_R_ISSUER_DECODE_ERROR); |
330 | goto err; | 330 | goto err; |
331 | } | 331 | } |
332 | 332 | ||
333 | for (i = 0; i < sk_GENERAL_NAME_num(ialt); i++) { | 333 | for (i = 0; i < sk_GENERAL_NAME_num(ialt); i++) { |
334 | gen = sk_GENERAL_NAME_value(ialt, i); | 334 | gen = sk_GENERAL_NAME_value(ialt, i); |
335 | if (!sk_GENERAL_NAME_push(gens, gen)) { | 335 | if (!sk_GENERAL_NAME_push(gens, gen)) { |
336 | X509V3err(X509V3_F_COPY_ISSUER, ERR_R_MALLOC_FAILURE); | 336 | X509V3error(ERR_R_MALLOC_FAILURE); |
337 | goto err; | 337 | goto err; |
338 | } | 338 | } |
339 | } | 339 | } |
@@ -355,7 +355,7 @@ v2i_subject_alt(X509V3_EXT_METHOD *method, X509V3_CTX *ctx, | |||
355 | int i; | 355 | int i; |
356 | 356 | ||
357 | if (!(gens = sk_GENERAL_NAME_new_null())) { | 357 | if (!(gens = sk_GENERAL_NAME_new_null())) { |
358 | X509V3err(X509V3_F_V2I_SUBJECT_ALT, ERR_R_MALLOC_FAILURE); | 358 | X509V3error(ERR_R_MALLOC_FAILURE); |
359 | return NULL; | 359 | return NULL; |
360 | } | 360 | } |
361 | for (i = 0; i < sk_CONF_VALUE_num(nval); i++) { | 361 | for (i = 0; i < sk_CONF_VALUE_num(nval); i++) { |
@@ -401,7 +401,7 @@ copy_email(X509V3_CTX *ctx, GENERAL_NAMES *gens, int move_p) | |||
401 | if (ctx != NULL && ctx->flags == CTX_TEST) | 401 | if (ctx != NULL && ctx->flags == CTX_TEST) |
402 | return 1; | 402 | return 1; |
403 | if (!ctx || (!ctx->subject_cert && !ctx->subject_req)) { | 403 | if (!ctx || (!ctx->subject_cert && !ctx->subject_req)) { |
404 | X509V3err(X509V3_F_COPY_EMAIL, X509V3_R_NO_SUBJECT_DETAILS); | 404 | X509V3error(X509V3_R_NO_SUBJECT_DETAILS); |
405 | goto err; | 405 | goto err; |
406 | } | 406 | } |
407 | /* Find the subject name */ | 407 | /* Find the subject name */ |
@@ -422,14 +422,14 @@ copy_email(X509V3_CTX *ctx, GENERAL_NAMES *gens, int move_p) | |||
422 | i--; | 422 | i--; |
423 | } | 423 | } |
424 | if (!email || !(gen = GENERAL_NAME_new())) { | 424 | if (!email || !(gen = GENERAL_NAME_new())) { |
425 | X509V3err(X509V3_F_COPY_EMAIL, ERR_R_MALLOC_FAILURE); | 425 | X509V3error(ERR_R_MALLOC_FAILURE); |
426 | goto err; | 426 | goto err; |
427 | } | 427 | } |
428 | gen->d.ia5 = email; | 428 | gen->d.ia5 = email; |
429 | email = NULL; | 429 | email = NULL; |
430 | gen->type = GEN_EMAIL; | 430 | gen->type = GEN_EMAIL; |
431 | if (!sk_GENERAL_NAME_push(gens, gen)) { | 431 | if (!sk_GENERAL_NAME_push(gens, gen)) { |
432 | X509V3err(X509V3_F_COPY_EMAIL, ERR_R_MALLOC_FAILURE); | 432 | X509V3error(ERR_R_MALLOC_FAILURE); |
433 | goto err; | 433 | goto err; |
434 | } | 434 | } |
435 | gen = NULL; | 435 | gen = NULL; |
@@ -453,7 +453,7 @@ v2i_GENERAL_NAMES(const X509V3_EXT_METHOD *method, X509V3_CTX *ctx, | |||
453 | int i; | 453 | int i; |
454 | 454 | ||
455 | if (!(gens = sk_GENERAL_NAME_new_null())) { | 455 | if (!(gens = sk_GENERAL_NAME_new_null())) { |
456 | X509V3err(X509V3_F_V2I_GENERAL_NAMES, ERR_R_MALLOC_FAILURE); | 456 | X509V3error(ERR_R_MALLOC_FAILURE); |
457 | return NULL; | 457 | return NULL; |
458 | } | 458 | } |
459 | for (i = 0; i < sk_CONF_VALUE_num(nval); i++) { | 459 | for (i = 0; i < sk_CONF_VALUE_num(nval); i++) { |
@@ -487,7 +487,7 @@ a2i_GENERAL_NAME(GENERAL_NAME *out, const X509V3_EXT_METHOD *method, | |||
487 | GENERAL_NAME *gen = NULL; | 487 | GENERAL_NAME *gen = NULL; |
488 | 488 | ||
489 | if (!value) { | 489 | if (!value) { |
490 | X509V3err(X509V3_F_A2I_GENERAL_NAME, X509V3_R_MISSING_VALUE); | 490 | X509V3error(X509V3_R_MISSING_VALUE); |
491 | return NULL; | 491 | return NULL; |
492 | } | 492 | } |
493 | 493 | ||
@@ -496,8 +496,7 @@ a2i_GENERAL_NAME(GENERAL_NAME *out, const X509V3_EXT_METHOD *method, | |||
496 | else { | 496 | else { |
497 | gen = GENERAL_NAME_new(); | 497 | gen = GENERAL_NAME_new(); |
498 | if (gen == NULL) { | 498 | if (gen == NULL) { |
499 | X509V3err(X509V3_F_A2I_GENERAL_NAME, | 499 | X509V3error(ERR_R_MALLOC_FAILURE); |
500 | ERR_R_MALLOC_FAILURE); | ||
501 | return NULL; | 500 | return NULL; |
502 | } | 501 | } |
503 | } | 502 | } |
@@ -513,8 +512,7 @@ a2i_GENERAL_NAME(GENERAL_NAME *out, const X509V3_EXT_METHOD *method, | |||
513 | { | 512 | { |
514 | ASN1_OBJECT *obj; | 513 | ASN1_OBJECT *obj; |
515 | if (!(obj = OBJ_txt2obj(value, 0))) { | 514 | if (!(obj = OBJ_txt2obj(value, 0))) { |
516 | X509V3err(X509V3_F_A2I_GENERAL_NAME, | 515 | X509V3error(X509V3_R_BAD_OBJECT); |
517 | X509V3_R_BAD_OBJECT); | ||
518 | ERR_asprintf_error_data("value=%s", value); | 516 | ERR_asprintf_error_data("value=%s", value); |
519 | goto err; | 517 | goto err; |
520 | } | 518 | } |
@@ -528,8 +526,7 @@ a2i_GENERAL_NAME(GENERAL_NAME *out, const X509V3_EXT_METHOD *method, | |||
528 | else | 526 | else |
529 | gen->d.ip = a2i_IPADDRESS(value); | 527 | gen->d.ip = a2i_IPADDRESS(value); |
530 | if (gen->d.ip == NULL) { | 528 | if (gen->d.ip == NULL) { |
531 | X509V3err(X509V3_F_A2I_GENERAL_NAME, | 529 | X509V3error(X509V3_R_BAD_IP_ADDRESS); |
532 | X509V3_R_BAD_IP_ADDRESS); | ||
533 | ERR_asprintf_error_data("value=%s", value); | 530 | ERR_asprintf_error_data("value=%s", value); |
534 | goto err; | 531 | goto err; |
535 | } | 532 | } |
@@ -537,22 +534,20 @@ a2i_GENERAL_NAME(GENERAL_NAME *out, const X509V3_EXT_METHOD *method, | |||
537 | 534 | ||
538 | case GEN_DIRNAME: | 535 | case GEN_DIRNAME: |
539 | if (!do_dirname(gen, value, ctx)) { | 536 | if (!do_dirname(gen, value, ctx)) { |
540 | X509V3err(X509V3_F_A2I_GENERAL_NAME, | 537 | X509V3error(X509V3_R_DIRNAME_ERROR); |
541 | X509V3_R_DIRNAME_ERROR); | ||
542 | goto err; | 538 | goto err; |
543 | } | 539 | } |
544 | break; | 540 | break; |
545 | 541 | ||
546 | case GEN_OTHERNAME: | 542 | case GEN_OTHERNAME: |
547 | if (!do_othername(gen, value, ctx)) { | 543 | if (!do_othername(gen, value, ctx)) { |
548 | X509V3err(X509V3_F_A2I_GENERAL_NAME, | 544 | X509V3error(X509V3_R_OTHERNAME_ERROR); |
549 | X509V3_R_OTHERNAME_ERROR); | ||
550 | goto err; | 545 | goto err; |
551 | } | 546 | } |
552 | break; | 547 | break; |
553 | 548 | ||
554 | default: | 549 | default: |
555 | X509V3err(X509V3_F_A2I_GENERAL_NAME, X509V3_R_UNSUPPORTED_TYPE); | 550 | X509V3error(X509V3_R_UNSUPPORTED_TYPE); |
556 | goto err; | 551 | goto err; |
557 | } | 552 | } |
558 | 553 | ||
@@ -560,8 +555,7 @@ a2i_GENERAL_NAME(GENERAL_NAME *out, const X509V3_EXT_METHOD *method, | |||
560 | if (!(gen->d.ia5 = ASN1_IA5STRING_new()) || | 555 | if (!(gen->d.ia5 = ASN1_IA5STRING_new()) || |
561 | !ASN1_STRING_set(gen->d.ia5, (unsigned char*)value, | 556 | !ASN1_STRING_set(gen->d.ia5, (unsigned char*)value, |
562 | strlen(value))) { | 557 | strlen(value))) { |
563 | X509V3err(X509V3_F_A2I_GENERAL_NAME, | 558 | X509V3error(ERR_R_MALLOC_FAILURE); |
564 | ERR_R_MALLOC_FAILURE); | ||
565 | goto err; | 559 | goto err; |
566 | } | 560 | } |
567 | } | 561 | } |
@@ -587,7 +581,7 @@ v2i_GENERAL_NAME_ex(GENERAL_NAME *out, const X509V3_EXT_METHOD *method, | |||
587 | value = cnf->value; | 581 | value = cnf->value; |
588 | 582 | ||
589 | if (!value) { | 583 | if (!value) { |
590 | X509V3err(X509V3_F_V2I_GENERAL_NAME_EX, X509V3_R_MISSING_VALUE); | 584 | X509V3error(X509V3_R_MISSING_VALUE); |
591 | return NULL; | 585 | return NULL; |
592 | } | 586 | } |
593 | 587 | ||
@@ -606,8 +600,7 @@ v2i_GENERAL_NAME_ex(GENERAL_NAME *out, const X509V3_EXT_METHOD *method, | |||
606 | else if (!name_cmp(name, "otherName")) | 600 | else if (!name_cmp(name, "otherName")) |
607 | type = GEN_OTHERNAME; | 601 | type = GEN_OTHERNAME; |
608 | else { | 602 | else { |
609 | X509V3err(X509V3_F_V2I_GENERAL_NAME_EX, | 603 | X509V3error(X509V3_R_UNSUPPORTED_OPTION); |
610 | X509V3_R_UNSUPPORTED_OPTION); | ||
611 | ERR_asprintf_error_data("name=%s", name); | 604 | ERR_asprintf_error_data("name=%s", name); |
612 | return NULL; | 605 | return NULL; |
613 | } | 606 | } |
@@ -655,7 +648,7 @@ do_dirname(GENERAL_NAME *gen, char *value, X509V3_CTX *ctx) | |||
655 | return 0; | 648 | return 0; |
656 | sk = X509V3_get_section(ctx, value); | 649 | sk = X509V3_get_section(ctx, value); |
657 | if (!sk) { | 650 | if (!sk) { |
658 | X509V3err(X509V3_F_DO_DIRNAME, X509V3_R_SECTION_NOT_FOUND); | 651 | X509V3error(X509V3_R_SECTION_NOT_FOUND); |
659 | ERR_asprintf_error_data("section=%s", value); | 652 | ERR_asprintf_error_data("section=%s", value); |
660 | X509_NAME_free(nm); | 653 | X509_NAME_free(nm); |
661 | return 0; | 654 | return 0; |