aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2023-05-22 15:00:54 +0000
committerWerner Koch <[email protected]>2023-05-22 15:00:54 +0000
commit5f46bcaaa0826a7b32f3f3bb5ef7a528ec0515a6 (patch)
tree7a37ab8cb31e08008de9429e46b4b0a204af21ab
parentgpgtar: Emit FAILURE status line. (diff)
downloadgnupg-5f46bcaaa0826a7b32f3f3bb5ef7a528ec0515a6.tar.gz
gnupg-5f46bcaaa0826a7b32f3f3bb5ef7a528ec0515a6.zip
sm: Emit STATUS_FAILURE for non-implemented commands.
* sm/gpgsm.c (main): Do it here.
-rw-r--r--sm/gpgsm.c16
-rw-r--r--sm/server.c2
2 files changed, 13 insertions, 5 deletions
diff --git a/sm/gpgsm.c b/sm/gpgsm.c
index 55173f8a2..07c3ff480 100644
--- a/sm/gpgsm.c
+++ b/sm/gpgsm.c
@@ -1951,11 +1951,17 @@ main ( int argc, char **argv)
break;
case aSignEncr: /* sign and encrypt the given file */
- log_error ("this command has not yet been implemented\n");
+ log_error ("the command '%s' has not yet been implemented\n",
+ "--sign --encrypt");
+ gpgsm_status_with_error (&ctrl, STATUS_FAILURE, "option-parser",
+ gpg_error (GPG_ERR_NOT_IMPLEMENTED));
break;
case aClearsign: /* make a clearsig */
- log_error ("this command has not yet been implemented\n");
+ log_error ("the command '%s' has not yet been implemented\n",
+ "--clearsign");
+ gpgsm_status_with_error (&ctrl, STATUS_FAILURE, "option-parser",
+ gpg_error (GPG_ERR_NOT_IMPLEMENTED));
break;
case aVerify:
@@ -2188,8 +2194,10 @@ main ( int argc, char **argv)
default:
- log_error (_("invalid command (there is no implicit command)\n"));
- break;
+ log_error (_("invalid command (there is no implicit command)\n"));
+ gpgsm_status_with_error (&ctrl, STATUS_FAILURE, "option-parser",
+ gpg_error (GPG_ERR_MISSING_ACTION));
+ break;
}
/* Print the audit result if needed. */
diff --git a/sm/server.c b/sm/server.c
index e44856ab9..3ec1c0c4b 100644
--- a/sm/server.c
+++ b/sm/server.c
@@ -1530,7 +1530,7 @@ gpgsm_status_with_err_code (ctrl_t ctrl, int no, const char *text,
{
char buf[30];
- sprintf (buf, "%u", (unsigned int)ec);
+ snprintf (buf, sizeof buf, "%u", (unsigned int)ec);
if (text)
return gpgsm_status2 (ctrl, no, text, buf, NULL);
else