diff options
author | Pauli <pauli@openssl.org> | 2021-10-25 11:16:01 +1000 |
---|---|---|
committer | Pauli <pauli@openssl.org> | 2021-10-27 08:27:18 +1000 |
commit | 1682a8524652c4f1386852f0d0c1dec75895b7da (patch) | |
tree | d320552a453e354f02550e35f3412c28a34c341f /apps/speed.c | |
parent | 8606d3a919b265d4fd29606aab7be0fd3c78f7c2 (diff) |
speed: range check the argument given to -multi
For machines where sizeof(size_t) == sizeof(int) there is a possible overflow
which could cause a crash.
For machines where sizeof(size_t) > sizeof(int), the existing checks adequately
detect the situation.
Fixes #16899
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/16904)
(cherry picked from commit 7220085f22cf6c49933ea8287eb15db57f7ab0db)
Diffstat (limited to 'apps/speed.c')
-rw-r--r-- | apps/speed.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/apps/speed.c b/apps/speed.c index 1e5295398f..4dd9ce0885 100644 --- a/apps/speed.c +++ b/apps/speed.c @@ -1540,6 +1540,10 @@ int speed_main(int argc, char **argv) case OPT_MULTI: #ifndef NO_FORK multi = atoi(opt_arg()); + if ((size_t)multi >= SIZE_MAX / sizeof(int)) { + BIO_printf(bio_err, "%s: multi argument too large\n", prog); + return 0; + } #endif break; case OPT_ASYNCJOBS: |