summaryrefslogtreecommitdiffstats
path: root/apps/smime.c
diff options
context:
space:
mode:
authorRich Salz <rsalz@akamai.com>2020-11-28 16:12:58 -0500
committerTomas Mraz <tmraz@fedoraproject.org>2020-12-15 11:47:17 +0100
commit021410ea3fc3876538830839d16b67e610d12785 (patch)
tree7178c87097f1083bc285a77f8ec179ceba343464 /apps/smime.c
parentc678f68a19638c1e2bbfee6a7a1d8d728976ce66 (diff)
Check non-option arguments
Make sure all commands check to see if there are any "extra" arguments after the options, and print an error if so. Made all error messages consistent (which is to say, minimal). Fixes: #13527 Reviewed-by: Shane Lontis <shane.lontis@oracle.com> Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/13563)
Diffstat (limited to 'apps/smime.c')
-rw-r--r--apps/smime.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/apps/smime.c b/apps/smime.c
index f0ac6ed99c..b8451d8403 100644
--- a/apps/smime.c
+++ b/apps/smime.c
@@ -356,6 +356,8 @@ int smime_main(int argc, char **argv)
break;
}
}
+
+ /* Extra arguments are files with recipient keys. */
argc = opt_num_rest();
argv = opt_rest();
@@ -363,6 +365,11 @@ int smime_main(int argc, char **argv)
BIO_puts(bio_err, "Multiple signers or keys not allowed\n");
goto opthelp;
}
+ if (!operation) {
+ BIO_puts(bio_err,
+ "No operation (-encrypt|-sign|...) specified\n");
+ goto opthelp;
+ }
if (operation & SMIME_SIGNERS) {
/* Check to see if any final signer needs to be appended */
@@ -398,8 +405,6 @@ int smime_main(int argc, char **argv)
BIO_printf(bio_err, "No recipient(s) certificate(s) specified\n");
goto opthelp;
}
- } else if (!operation) {
- goto opthelp;
}
if (!app_passwd(passinarg, NULL, &passin, NULL)) {