[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