remove/insert fix: restore the slot->reader in slot_token_removed
git-svn-id: https://www.opensc-project.org/svnp/opensc/trunk@943 c6295689-39f2-0310-b995-f0e70906c6a9
This commit is contained in:
parent
4dd322f82a
commit
ca6a27e429
|
@ -272,6 +272,7 @@ CK_RV slot_token_removed(int id)
|
||||||
struct sc_pkcs11_slot *slot;
|
struct sc_pkcs11_slot *slot;
|
||||||
struct sc_pkcs11_object *object;
|
struct sc_pkcs11_object *object;
|
||||||
CK_SLOT_INFO saved_slot_info;
|
CK_SLOT_INFO saved_slot_info;
|
||||||
|
int reader;
|
||||||
|
|
||||||
rv = slot_get_slot(id, &slot);
|
rv = slot_get_slot(id, &slot);
|
||||||
if (rv != CKR_OK)
|
if (rv != CKR_OK)
|
||||||
|
@ -298,10 +299,12 @@ CK_RV slot_token_removed(int id)
|
||||||
/* Zap everything else. Restore the slot_info afterwards (it contains the reader
|
/* Zap everything else. Restore the slot_info afterwards (it contains the reader
|
||||||
* name, for instance) but clear its flags */
|
* name, for instance) but clear its flags */
|
||||||
saved_slot_info = slot->slot_info;
|
saved_slot_info = slot->slot_info;
|
||||||
|
reader = slot->reader;
|
||||||
memset(slot, 0, sizeof(*slot));
|
memset(slot, 0, sizeof(*slot));
|
||||||
slot->slot_info = saved_slot_info;
|
slot->slot_info = saved_slot_info;
|
||||||
slot->slot_info.flags = 0;
|
slot->slot_info.flags = 0;
|
||||||
slot->login_user = -1;
|
slot->login_user = -1;
|
||||||
|
slot->reader = reader;
|
||||||
|
|
||||||
if (token_was_present)
|
if (token_was_present)
|
||||||
slot->events = SC_EVENT_CARD_REMOVED;
|
slot->events = SC_EVENT_CARD_REMOVED;
|
||||||
|
|
Loading…
Reference in New Issue