scd: Fix for --disable-ccid for scdaemon.

* 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>
This commit is contained in:
NIIBE Yutaka 2017-01-06 10:35:46 +09:00
parent 62268a2732
commit 858e14cd79
1 changed files with 7 additions and 6 deletions

View 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;
}