[openssl-commits] [openssl] master update

Rich Salz rsalz at openssl.org
Mon Aug 21 15:31:32 UTC 2017


The branch master has been updated
       via  c27363f566274a65067d7559f9669f300f957183 (commit)
      from  b73b4d73de328de73c5a74ccc53291cd86a141e9 (commit)


- Log -----------------------------------------------------------------
commit c27363f566274a65067d7559f9669f300f957183
Author: Rich Salz <rsalz at openssl.org>
Date:   Sun Aug 20 17:10:48 2017 -0400

    Check # of arguments for remaining commands.
    
    Reviewed-by: Paul Dale <paul.dale at oracle.com>
    (Merged from https://github.com/openssl/openssl/pull/4201)

-----------------------------------------------------------------------

Summary of changes:
 apps/enc.c     |  4 ++++
 apps/genrsa.c  | 12 +++++++++---
 apps/openssl.c | 11 +++++++----
 apps/prime.c   | 10 ++++++++--
 apps/rand.c    |  8 ++++++--
 apps/srp.c     | 21 +++++++++------------
 apps/version.c |  5 +++++
 7 files changed, 48 insertions(+), 23 deletions(-)

diff --git a/apps/enc.c b/apps/enc.c
index db5d3a2..9c85ee5 100644
--- a/apps/enc.c
+++ b/apps/enc.c
@@ -263,6 +263,10 @@ int enc_main(int argc, char **argv)
             break;
         }
     }
+    if (opt_num_rest() != 0) {
+        BIO_printf(bio_err, "Extra arguments given.\n");
+        goto opthelp;
+    }
 
     if (cipher && EVP_CIPHER_flags(cipher) & EVP_CIPH_FLAG_AEAD_CIPHER) {
         BIO_printf(bio_err, "%s: AEAD ciphers not supported\n", prog);
diff --git a/apps/genrsa.c b/apps/genrsa.c
index 2bc70a9..ebd69e1 100644
--- a/apps/genrsa.c
+++ b/apps/genrsa.c
@@ -78,6 +78,7 @@ int genrsa_main(int argc, char **argv)
         switch (o) {
         case OPT_EOF:
         case OPT_ERR:
+opthelp:
             BIO_printf(bio_err, "%s: Use -help for summary.\n", prog);
             goto end;
         case OPT_HELP:
@@ -111,11 +112,16 @@ int genrsa_main(int argc, char **argv)
     }
     argc = opt_num_rest();
     argv = opt_rest();
-    private = 1;
 
-    if (argv[0] && (!opt_int(argv[0], &num) || num <= 0))
-        goto end;
+    if (argc == 1) {
+        if (!opt_int(argv[0], &num) || num <= 0)
+            goto end;
+    } else if (argc > 0) {
+        BIO_printf(bio_err, "Extra arguments given.\n");
+        goto opthelp;
+    }
 
+    private = 1;
     if (!app_passwd(NULL, passoutarg, NULL, &passout)) {
         BIO_printf(bio_err, "Error getting password\n");
         goto end;
diff --git a/apps/openssl.c b/apps/openssl.c
index 2b43b1b..8a67328 100644
--- a/apps/openssl.c
+++ b/apps/openssl.c
@@ -388,6 +388,7 @@ int list_main(int argc, char **argv)
         switch (o) {
         case OPT_EOF:  /* Never hit, but suppresses warning */
         case OPT_ERR:
+opthelp:
             BIO_printf(bio_err, "%s: Use -help for summary.\n", prog);
             return 1;
         case OPT_HELP:
@@ -429,12 +430,14 @@ int list_main(int argc, char **argv)
         }
         done = 1;
     }
-
-    if (!done) {
-        BIO_printf(bio_err, "%s: Use -help for summary.\n", prog);
-        return 1;
+    if (opt_num_rest() != 0) {
+        BIO_printf(bio_err, "Extra arguments given.\n");
+        goto opthelp;
     }
 
+    if (!done)
+        goto opthelp;
+
     return 0;
 }
 
diff --git a/apps/prime.c b/apps/prime.c
index 3c72330..9aa32d0 100644
--- a/apps/prime.c
+++ b/apps/prime.c
@@ -43,6 +43,7 @@ int prime_main(int argc, char **argv)
         switch (o) {
         case OPT_EOF:
         case OPT_ERR:
+opthelp:
             BIO_printf(bio_err, "%s: Use -help for summary.\n", prog);
             goto end;
         case OPT_HELP:
@@ -69,9 +70,14 @@ int prime_main(int argc, char **argv)
     argc = opt_num_rest();
     argv = opt_rest();
 
-    if (argc == 0 && !generate) {
+    if (generate) {
+        if (argc != 0) {
+            BIO_printf(bio_err, "Extra arguments given.\n");
+            goto opthelp;
+        }
+    } else if (argc == 0) {
         BIO_printf(bio_err, "%s: No prime specified\n", prog);
-        goto end;
+        goto opthelp;
     }
 
     if (generate) {
diff --git a/apps/rand.c b/apps/rand.c
index 3455006..cf45b43 100644
--- a/apps/rand.c
+++ b/apps/rand.c
@@ -77,9 +77,13 @@ int rand_main(int argc, char **argv)
     }
     argc = opt_num_rest();
     argv = opt_rest();
-
-    if (argc != 1 || !opt_int(argv[0], &num) || num < 0)
+    if (argc == 1) {
+        if (!opt_int(argv[0], &num) || num <= 0)
+            goto end;
+    } else if (argc > 0) {
+        BIO_printf(bio_err, "Extra arguments given.\n");
         goto opthelp;
+    }
 
     out = bio_open_default(outfile, 'w', format);
     if (out == NULL)
diff --git a/apps/srp.c b/apps/srp.c
index c500218..ceb0640 100644
--- a/apps/srp.c
+++ b/apps/srp.c
@@ -297,11 +297,12 @@ int srp_main(int argc, char **argv)
                    "Exactly one of the options -add, -delete, -modify -list must be specified.\n");
         goto opthelp;
     }
-    if ((mode == OPT_DELETE || mode == OPT_MODIFY || mode == OPT_ADD)
-        && argc < 1) {
-        BIO_printf(bio_err,
-                   "Need at least one user for options -add, -delete, -modify. \n");
-        goto opthelp;
+    if (mode == OPT_DELETE || mode == OPT_MODIFY || mode == OPT_ADD) {
+        if (argc == 0) {
+            BIO_printf(bio_err, "Need at least one user.\n");
+            goto opthelp;
+        }
+        user = *argv++;
     }
     if ((passinarg != NULL || passoutarg != NULL) && argc != 1) {
         BIO_printf(bio_err,
@@ -390,10 +391,7 @@ int srp_main(int argc, char **argv)
     if (verbose > 1)
         BIO_printf(bio_err, "Starting user processing\n");
 
-    if (argc > 0)
-        user = *(argv++);
-
-    while (mode == OPT_LIST || user) {
+    while (mode == OPT_LIST || user != NULL) {
         int userindex = -1;
 
         if (user != NULL && verbose > 1)
@@ -554,9 +552,8 @@ int srp_main(int argc, char **argv)
                 doupdatedb = 1;
             }
         }
-        if (--argc > 0) {
-            user = *(argv++);
-        } else {
+        user = *argv++;
+        if (user == NULL) {
             /* no more processing in any mode if no users left */
             break;
         }
diff --git a/apps/version.c b/apps/version.c
index c9727da..57b9fd6 100644
--- a/apps/version.c
+++ b/apps/version.c
@@ -72,6 +72,7 @@ int version_main(int argc, char **argv)
         switch (o) {
         case OPT_EOF:
         case OPT_ERR:
+opthelp:
             BIO_printf(bio_err, "%s: Use -help for summary.\n", prog);
             goto end;
         case OPT_HELP:
@@ -107,6 +108,10 @@ int version_main(int argc, char **argv)
             break;
         }
     }
+    if (opt_num_rest() != 0) {
+        BIO_printf(bio_err, "Extra parameters given.\n");
+        goto opthelp;
+    }
     if (!dirty)
         version = 1;
 


More information about the openssl-commits mailing list