mirror of
git://git.gnupg.org/gnupg.git
synced 2025-02-01 16:33:02 +01:00
scd: Don't keep CCID reader open when card is not available.
* scd/apdu.c (open_ccid_reader): Fail if no ATR. Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
This commit is contained in:
parent
ebe12be034
commit
3c93595d70
11
scd/apdu.c
11
scd/apdu.c
@ -1496,6 +1496,9 @@ open_ccid_reader (struct dev_list *dl)
|
|||||||
|
|
||||||
err = ccid_open_reader (dl->portstr, dl->idx, dl->ccid_table,
|
err = ccid_open_reader (dl->portstr, dl->idx, dl->ccid_table,
|
||||||
&slotp->ccid.handle, &slotp->rdrname);
|
&slotp->ccid.handle, &slotp->rdrname);
|
||||||
|
if (!err)
|
||||||
|
err = ccid_get_atr (slotp->ccid.handle,
|
||||||
|
slotp->atr, sizeof slotp->atr, &slotp->atrlen);
|
||||||
if (err)
|
if (err)
|
||||||
{
|
{
|
||||||
slotp->used = 0;
|
slotp->used = 0;
|
||||||
@ -1503,14 +1506,6 @@ open_ccid_reader (struct dev_list *dl)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
err = ccid_get_atr (slotp->ccid.handle,
|
|
||||||
slotp->atr, sizeof slotp->atr, &slotp->atrlen);
|
|
||||||
if (err)
|
|
||||||
{
|
|
||||||
slotp->atrlen = 0;
|
|
||||||
err = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
require_get_status = ccid_require_get_status (slotp->ccid.handle);
|
require_get_status = ccid_require_get_status (slotp->ccid.handle);
|
||||||
|
|
||||||
reader_table[slot].close_reader = close_ccid_reader;
|
reader_table[slot].close_reader = close_ccid_reader;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user