Check that async_jobs is not negative and not too high.
authorBernd Edlinger <bernd.edlinger@hotmail.de>
Tue, 21 Feb 2017 05:58:04 +0000 (06:58 +0100)
committerRich Salz <rsalz@openssl.org>
Wed, 1 Mar 2017 17:19:46 +0000 (12:19 -0500)
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/2693)

apps/speed.c

index c10a8ee..50522ae 100644 (file)
@@ -1214,7 +1214,7 @@ int speed_main(int argc, char **argv)
 #ifndef NO_FORK
     int multi = 0;
 #endif
-    int async_jobs = 0;
+    unsigned int async_jobs = 0;
 #if !defined(OPENSSL_NO_RSA) || !defined(OPENSSL_NO_DSA) \
     || !defined(OPENSSL_NO_EC)
     long rsa_count = 1;
@@ -1393,6 +1393,12 @@ int speed_main(int argc, char **argv)
                            prog);
                 goto opterr;
             }
+            if (async_jobs > 99999) {
+                BIO_printf(bio_err,
+                           "%s: too many async_jobs\n",
+                           prog);
+                goto opterr;
+            }
 #endif
             break;
         case OPT_MISALIGN: