diff options
author | NIIBE Yutaka <[email protected]> | 2016-09-03 06:27:30 +0000 |
---|---|---|
committer | NIIBE Yutaka <[email protected]> | 2016-09-03 06:27:30 +0000 |
commit | f9e49c80e706a27d5e30d4b3237ff26367a67130 (patch) | |
tree | 4bc383a6b2f22f54a03d4438afeb8a608f2bc007 | |
parent | po: Fix line ending mismatch in Japanese translation. (diff) | |
download | gnupg-f9e49c80e706a27d5e30d4b3237ff26367a67130.tar.gz gnupg-f9e49c80e706a27d5e30d4b3237ff26367a67130.zip |
scd: Fix an action after card removal.
* scd/command.c (update_card_removed): Call apdu_close_reader here.
--
This is update of the commit 8fe81055762d9c9e6f03fb7853a985c94ef73ac3
It is better apdu_close_reader is called in update_card_removed.
The commit 1598a4476466822e7e9c757ac471089d3db4b545 introduced a
regression, it doesn't close the reader after removal of the card, while
the code before the commit call apdu_close_reader in do_reset.
So, this fix.
GnuPG-bug-id: 2449
Signed-off-by: NIIBE Yutaka <[email protected]>
-rw-r--r-- | scd/command.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/scd/command.c b/scd/command.c index 2909330e5..9d978ab48 100644 --- a/scd/command.c +++ b/scd/command.c @@ -223,8 +223,11 @@ update_card_removed (int vrdr, int value) /* Let the card application layer know about the removal. */ if (value) { + int slot = vreader_slot (vrdr); + log_debug ("Removal of a card: %d\n", vrdr); - application_notify_card_reset (vreader_slot (vrdr)); + apdu_close_reader (slot); + application_notify_card_reset (slot); vreader_table[vrdr].slot = -1; } } @@ -2340,10 +2343,7 @@ update_reader_status_file (int set_card_removed_flag) /* Set the card removed flag for all current sessions. */ if (vr->any && vr->status == 0 && set_card_removed_flag) - { - apdu_close_reader (vr->slot); - update_card_removed (idx, 1); - } + update_card_removed (idx, 1); vr->any = 1; |