scd: Fix for --disable-ccid for scdaemon.
authorNIIBE Yutaka <gniibe@fsij.org>
Fri, 6 Jan 2017 01:35:46 +0000 (10:35 +0900)
committerNIIBE Yutaka <gniibe@fsij.org>
Fri, 6 Jan 2017 01:35:46 +0000 (10:35 +0900)
* scd/apdu.c (apdu_dev_list_finish): Don't call ccid_dev_scan_finish
with no table.
(apdu_open_reader): Only increment when it's zero.

Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
scd/apdu.c

index db46c4d..38ebd2b 100644 (file)
@@ -2974,7 +2974,8 @@ void
 apdu_dev_list_finish (struct dev_list *dl)
 {
 #ifdef HAVE_LIBUSB
-  ccid_dev_scan_finish (dl->ccid_table, dl->idx_max);
+  if (dl->ccid_table)
+    ccid_dev_scan_finish (dl->ccid_table, dl->idx_max);
 #endif
   xfree (dl);
   npth_mutex_unlock (&reader_table_lock);
@@ -3195,15 +3196,15 @@ apdu_open_reader (struct dev_list *dl)
   else
 #endif
     { /* PC/SC readers.  */
-      if (dl->idx++ == 0)
-        slot = apdu_open_one_reader (dl->portstr);
+      if (dl->idx == 0)
+        {
+          dl->idx++;
+          slot = apdu_open_one_reader (dl->portstr);
+        }
       else
         slot = -1;
     }
 
-  if (DBG_READER)
-    log_debug ("leave: apdu_open_reader => slot=%d [ccid]\n", slot);
-
   return slot;
 }