[git] GnuPG - branch, master, updated. gnupg-2.1.3-22-g01a2a61

by NIIBE Yutaka cvs at cvs.gnupg.org
Thu Apr 30 07:31:45 CEST 2015


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  01a2a61bc4b34817c4216888265f65d59a33dad3 (commit)
      from  172b6193488f433a206fd88f85d8c4a5d1eb7fdf (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 01a2a61bc4b34817c4216888265f65d59a33dad3
Author: NIIBE Yutaka <gniibe at fsij.org>
Date:   Thu Apr 30 12:36:38 2015 +0900

    scd: PC/SC reader selection by partial string match.
    
    * scd/apdu.c (open_pcsc_reader_direct): Partial string match.
    
    --
    
    The card reader name by PC/SC service might include USB bus,
    which varies (on some platform like GNU/Linux).  Thus, it's
    better to match partial string.
    
    Original patch was submitted by anstein.  I changed it to fallback to
    the first reader if no match found.
    
    Note that we need to change pcsc-wrapper.c in 2.0 backport.
    
    GnuPG-bug-id: 1618, 1930

diff --git a/scd/apdu.c b/scd/apdu.c
index f6cca8c..189fd4a 100644
--- a/scd/apdu.c
+++ b/scd/apdu.c
@@ -1911,6 +1911,7 @@ open_pcsc_reader_direct (const char *portstr)
   long err;
   int slot;
   char *list = NULL;
+  char *rdrname = NULL;
   pcsc_dword_t nreader;
   char *p;
 
@@ -1963,18 +1964,22 @@ open_pcsc_reader_direct (const char *portstr)
     {
       if (!*p && !p[1])
         break;
-      if (*p)
-        log_info ("detected reader '%s'\n", p);
+      log_info ("detected reader '%s'\n", p);
       if (nreader < (strlen (p)+1))
         {
           log_error ("invalid response from pcsc_list_readers\n");
           break;
         }
+      if (!rdrname && portstr && !strncmp (p, portstr, strlen (portstr)))
+        rdrname = p;
       nreader -= strlen (p)+1;
       p += strlen (p) + 1;
     }
 
-  reader_table[slot].rdrname = xtrymalloc (strlen (portstr? portstr : list)+1);
+  if (!rdrname)
+    rdrname = list;
+
+  reader_table[slot].rdrname = xtrystrdup (rdrname);
   if (!reader_table[slot].rdrname)
     {
       log_error ("error allocating memory for reader name\n");
@@ -1983,7 +1988,6 @@ open_pcsc_reader_direct (const char *portstr)
       unlock_slot (slot);
       return -1;
     }
-  strcpy (reader_table[slot].rdrname, portstr? portstr : list);
   xfree (list);
   list = NULL;
 

-----------------------------------------------------------------------

Summary of changes:
 scd/apdu.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)


hooks/post-receive
-- 
The GNU Privacy Guard
http://git.gnupg.org




More information about the Gnupg-commits mailing list