diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/usr.bin/openssl/openssl.c | 46 |
1 files changed, 26 insertions, 20 deletions
diff --git a/src/usr.bin/openssl/openssl.c b/src/usr.bin/openssl/openssl.c index e931b7a33e..1b1cea6098 100644 --- a/src/usr.bin/openssl/openssl.c +++ b/src/usr.bin/openssl/openssl.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: openssl.c,v 1.31 2022/11/11 17:07:39 joshua Exp $ */ | 1 | /* $OpenBSD: openssl.c,v 1.32 2022/11/11 18:24:32 joshua Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -497,10 +497,9 @@ do_cmd(LHASH_OF(FUNCTION) * prog, int argc, char *argv[]) | |||
| 497 | FUNCTION f, *fp; | 497 | FUNCTION f, *fp; |
| 498 | int ret = 1; | 498 | int ret = 1; |
| 499 | 499 | ||
| 500 | if ((argc <= 0) || (argv[0] == NULL)) { | 500 | if (argc <= 0 || argv[0] == NULL) |
| 501 | ret = 0; | 501 | return 0; |
| 502 | goto end; | 502 | |
| 503 | } | ||
| 504 | f.name = argv[0]; | 503 | f.name = argv[0]; |
| 505 | fp = lh_FUNCTION_retrieve(prog, &f); | 504 | fp = lh_FUNCTION_retrieve(prog, &f); |
| 506 | if (fp == NULL) { | 505 | if (fp == NULL) { |
| @@ -514,9 +513,16 @@ do_cmd(LHASH_OF(FUNCTION) * prog, int argc, char *argv[]) | |||
| 514 | fp = &f; | 513 | fp = &f; |
| 515 | } | 514 | } |
| 516 | } | 515 | } |
| 517 | if (fp != NULL) { | 516 | |
| 518 | ret = fp->func(argc, argv); | 517 | if (fp != NULL) |
| 519 | } else if ((strncmp(argv[0], "no-", 3)) == 0) { | 518 | return fp->func(argc, argv); |
| 519 | |||
| 520 | if (strcmp(argv[0], "help") == 0) { | ||
| 521 | print_help(); | ||
| 522 | return 0; | ||
| 523 | } | ||
| 524 | |||
| 525 | if ((strncmp(argv[0], "no-", 3)) == 0) { | ||
| 520 | BIO *bio_stdout = BIO_new_fp(stdout, BIO_NOCLOSE); | 526 | BIO *bio_stdout = BIO_new_fp(stdout, BIO_NOCLOSE); |
| 521 | f.name = argv[0] + 3; | 527 | f.name = argv[0] + 3; |
| 522 | ret = (lh_FUNCTION_retrieve(prog, &f) != NULL); | 528 | ret = (lh_FUNCTION_retrieve(prog, &f) != NULL); |
| @@ -525,8 +531,10 @@ do_cmd(LHASH_OF(FUNCTION) * prog, int argc, char *argv[]) | |||
| 525 | else | 531 | else |
| 526 | BIO_printf(bio_stdout, "%s\n", argv[0] + 3); | 532 | BIO_printf(bio_stdout, "%s\n", argv[0] + 3); |
| 527 | BIO_free_all(bio_stdout); | 533 | BIO_free_all(bio_stdout); |
| 528 | goto end; | 534 | return ret; |
| 529 | } else if ((strcmp(argv[0], LIST_STANDARD_COMMANDS) == 0) || | 535 | } |
| 536 | |||
| 537 | if ((strcmp(argv[0], LIST_STANDARD_COMMANDS) == 0) || | ||
| 530 | (strcmp(argv[0], LIST_MESSAGE_DIGEST_COMMANDS) == 0) || | 538 | (strcmp(argv[0], LIST_MESSAGE_DIGEST_COMMANDS) == 0) || |
| 531 | (strcmp(argv[0], LIST_MESSAGE_DIGEST_ALGORITHMS) == 0) || | 539 | (strcmp(argv[0], LIST_MESSAGE_DIGEST_ALGORITHMS) == 0) || |
| 532 | (strcmp(argv[0], LIST_CIPHER_COMMANDS) == 0) || | 540 | (strcmp(argv[0], LIST_CIPHER_COMMANDS) == 0) || |
| @@ -562,17 +570,15 @@ do_cmd(LHASH_OF(FUNCTION) * prog, int argc, char *argv[]) | |||
| 562 | fp->name); | 570 | fp->name); |
| 563 | } | 571 | } |
| 564 | BIO_free_all(bio_stdout); | 572 | BIO_free_all(bio_stdout); |
| 565 | ret = 0; | 573 | return 0; |
| 566 | goto end; | ||
| 567 | } else { | ||
| 568 | BIO_printf(bio_err, | ||
| 569 | "openssl:Error: '%s' is an invalid command.\n", | ||
| 570 | argv[0]); | ||
| 571 | print_help(); | ||
| 572 | ret = 0; | ||
| 573 | } | 574 | } |
| 574 | end: | 575 | |
| 575 | return (ret); | 576 | BIO_printf(bio_err, |
| 577 | "openssl:Error: '%s' is an invalid command.\n", | ||
| 578 | argv[0]); | ||
| 579 | print_help(); | ||
| 580 | |||
| 581 | return 1; | ||
| 576 | } | 582 | } |
| 577 | 583 | ||
| 578 | static void | 584 | static void |
