gpg: Return SUCCESS/FAILURE status also for --card-edit/name.

* g10/card-util.c (change_name): Call write_sc_op_status.
--

Reported-by: Joey Berkovitz
This commit is contained in:
Werner Koch 2021-08-19 14:08:14 +02:00
parent 661c2ae966
commit c1a23c3664
No known key found for this signature in database
GPG Key ID: E3FDFF218E45B72B
1 changed files with 8 additions and 3 deletions

View File

@ -787,7 +787,8 @@ static int
change_name (void) change_name (void)
{ {
char *surname = NULL, *givenname = NULL; char *surname = NULL, *givenname = NULL;
char *isoname, *p; char *isoname = NULL;
char *p;
int rc; int rc;
surname = get_one_name ("keygen.smartcard.surname", surname = get_one_name ("keygen.smartcard.surname",
@ -798,7 +799,8 @@ change_name (void)
{ {
xfree (surname); xfree (surname);
xfree (givenname); xfree (givenname);
return -1; /*canceled*/ rc = gpg_error (GPG_ERR_CANCELED);
goto leave;
} }
isoname = xmalloc ( strlen (surname) + 2 + strlen (givenname) + 1); isoname = xmalloc ( strlen (surname) + 2 + strlen (givenname) + 1);
@ -814,14 +816,17 @@ change_name (void)
tty_printf (_("Error: Combined name too long " tty_printf (_("Error: Combined name too long "
"(limit is %d characters).\n"), 39); "(limit is %d characters).\n"), 39);
xfree (isoname); xfree (isoname);
return -1; rc = gpg_error (GPG_ERR_TOO_LARGE);
goto leave;
} }
rc = agent_scd_setattr ("DISP-NAME", isoname, strlen (isoname)); rc = agent_scd_setattr ("DISP-NAME", isoname, strlen (isoname));
if (rc) if (rc)
log_error ("error setting Name: %s\n", gpg_strerror (rc)); log_error ("error setting Name: %s\n", gpg_strerror (rc));
leave:
xfree (isoname); xfree (isoname);
write_sc_op_status (rc);
return rc; return rc;
} }