diff options
author | Rich Salz <rsalz@akamai.com> | 2020-11-28 16:12:58 -0500 |
---|---|---|
committer | Tomas Mraz <tmraz@fedoraproject.org> | 2020-12-15 11:47:17 +0100 |
commit | 021410ea3fc3876538830839d16b67e610d12785 (patch) | |
tree | 7178c87097f1083bc285a77f8ec179ceba343464 /apps/smime.c | |
parent | c678f68a19638c1e2bbfee6a7a1d8d728976ce66 (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.c | 9 |
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)) { |