[git] GnuPG - branch, master, updated. gnupg-2.1.19-15-g4ce4f2f
by NIIBE Yutaka
cvs at cvs.gnupg.org
Mon Mar 6 02:35:05 CET 2017
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The GNU Privacy Guard".
The branch, master has been updated
via 4ce4f2f683a17be3ddb93729f3f25014a97934ad (commit)
from 67c203b6bf8d6dd489ceef3391f609986e7b7a49 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 4ce4f2f683a17be3ddb93729f3f25014a97934ad
Author: NIIBE Yutaka <gniibe at fsij.org>
Date: Mon Mar 6 10:26:11 2017 +0900
agent: For SSH, robustly handling scdaemon's errors.
* agent/command-ssh.c (card_key_list): Return 0 when
agent_card_serialno returns an error.
(ssh_handler_request_identities): Handle errors for card listing
and proceed to other cases.
--
GnuPG-bug-id: 2980
Signed-off-by: NIIBE Yutaka <gniibe at fsij.org>
diff --git a/agent/command-ssh.c b/agent/command-ssh.c
index 79b8f85..3ab41cf 100644
--- a/agent/command-ssh.c
+++ b/agent/command-ssh.c
@@ -2393,13 +2393,12 @@ card_key_list (ctrl_t ctrl, char **r_serialno, strlist_t *result)
err = agent_card_serialno (ctrl, r_serialno, NULL);
if (err)
{
- if (gpg_err_code (err) == GPG_ERR_ENODEV)
- return 0; /* Nothing available. */
-
- if (opt.verbose)
+ if (gpg_err_code (err) != GPG_ERR_ENODEV && opt.verbose)
log_info (_("error getting serial number of card: %s\n"),
gpg_strerror (err));
- return err;
+
+ /* Nothing available. */
+ return 0;
}
err = agent_card_cardlist (ctrl, result);
@@ -2568,7 +2567,6 @@ ssh_handler_request_identities (ctrl_t ctrl,
gpg_error_t err;
int ret;
ssh_control_file_t cf = NULL;
- char *cardsn;
gpg_error_t ret_err;
(void)request;
@@ -2601,21 +2599,21 @@ ssh_handler_request_identities (ctrl_t ctrl,
if (opt.verbose)
log_info (_("error getting list of cards: %s\n"),
gpg_strerror (err));
- goto out;
+ goto scd_out;
}
for (sl = card_list; sl; sl = sl->next)
{
char *serialno0;
+ char *cardsn;
+
err = agent_card_serialno (ctrl, &serialno0, sl->d);
if (err)
{
if (opt.verbose)
log_info (_("error getting serial number of card: %s\n"),
gpg_strerror (err));
- xfree (serialno);
- free_strlist (card_list);
- goto out;
+ continue;
}
xfree (serialno0);
@@ -2640,6 +2638,7 @@ ssh_handler_request_identities (ctrl_t ctrl,
free_strlist (card_list);
}
+ scd_out:
/* Then look at all the registered and non-disabled keys. */
err = open_control_file (&cf, 0);
if (err)
-----------------------------------------------------------------------
Summary of changes:
agent/command-ssh.c | 19 +++++++++----------
1 file changed, 9 insertions(+), 10 deletions(-)
hooks/post-receive
--
The GNU Privacy Guard
http://git.gnupg.org
More information about the Gnupg-commits
mailing list