summaryrefslogtreecommitdiffstats
path: root/apps/speed.c
diff options
context:
space:
mode:
authorKevin K Biju <kevinkbiju@gmail.com>2022-02-01 11:04:35 +0530
committerTomas Mraz <tomas@openssl.org>2022-02-03 13:53:44 +0100
commit78212c6472ed3ade565ebcde0330d6eca7785fd6 (patch)
treee2188d3a628365b203449dcf87bb5e9aa0165f39 /apps/speed.c
parent944f822aadc88b2e25f7695366810c73a53a00c8 (diff)
Use opt_int_arg() to parse integers in apps/speed.c
We use opt_int_arg() to prevent malformed processing of hexadecimal input to some command line options. Updated help to mention the change. Reviewed-by: Paul Dale <pauli@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/17585)
Diffstat (limited to 'apps/speed.c')
-rw-r--r--apps/speed.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/apps/speed.c b/apps/speed.c
index 02e7b1f9b2..43c0802295 100644
--- a/apps/speed.c
+++ b/apps/speed.c
@@ -214,7 +214,11 @@ typedef enum OPTION_choice {
} OPTION_CHOICE;
const OPTIONS speed_options[] = {
- {OPT_HELP_STR, 1, '-', "Usage: %s [options] [algorithm...]\n"},
+ {OPT_HELP_STR, 1, '-',
+ "Usage: %s [options] [algorithm...]\n"
+ "All +int options consider prefix '0' as base-8 input, "
+ "prefix '0x'/'0X' as base-16 input.\n"
+ },
OPT_SECTION("General"),
{"help", OPT_HELP, '-', "Display this summary"},
@@ -1543,7 +1547,7 @@ int speed_main(int argc, char **argv)
break;
case OPT_MULTI:
#ifndef NO_FORK
- multi = atoi(opt_arg());
+ multi = opt_int_arg();
if ((size_t)multi >= SIZE_MAX / sizeof(int)) {
BIO_printf(bio_err, "%s: multi argument too large\n", prog);
return 0;
@@ -1552,7 +1556,7 @@ int speed_main(int argc, char **argv)
break;
case OPT_ASYNCJOBS:
#ifndef OPENSSL_NO_ASYNC
- async_jobs = atoi(opt_arg());
+ async_jobs = opt_int_arg();
if (!ASYNC_is_capable()) {
BIO_printf(bio_err,
"%s: async_jobs specified but async not supported\n",
@@ -1599,10 +1603,10 @@ int speed_main(int argc, char **argv)
case OPT_SECONDS:
seconds.sym = seconds.rsa = seconds.dsa = seconds.ecdsa
= seconds.ecdh = seconds.eddsa
- = seconds.sm2 = seconds.ffdh = atoi(opt_arg());
+ = seconds.sm2 = seconds.ffdh = opt_int_arg();
break;
case OPT_BYTES:
- lengths_single = atoi(opt_arg());
+ lengths_single = opt_int_arg();
lengths = &lengths_single;
size_num = 1;
break;