[Pkg-gnupg-commit] [gnupg2] 17/159: scd: Fix removal of unplugged usb readers on Windows.
Daniel Kahn Gillmor
dkg at fifthhorseman.net
Wed Jan 27 13:23:49 UTC 2016
This is an automated email from the git hooks/post-receive script.
dkg pushed a commit to branch master
in repository gnupg2.
commit d1a97585c5e73fbc7d4cf90e38f76ffc5aea305f
Author: Daniel Hoffend <dh at dotlan.net>
Date: Mon Dec 7 00:13:59 2015 +0100
scd: Fix removal of unplugged usb readers on Windows.
* scd/apdu.c (pcsc_error_to_sw): map PCSC_E_NO_SERVICE and
PCSC_E_SERVICE_STOPPED to the internal SW_HOST_NO_READER error code.
--
Signed-off-by: Daniel Hoffend <dh at dotlan.net>
GnuPG-bug-id: 2167
In Windows 8 (and later), PC/SC service only runs when reader/token is
plugged in. After its removal, it returns PCSC_E_NO_SERVICE error.
This error should be handled as no reader. This comment is by gniibe.
---
scd/apdu.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/scd/apdu.c b/scd/apdu.c
index 95a2561..268a2c6 100644
--- a/scd/apdu.c
+++ b/scd/apdu.c
@@ -244,6 +244,7 @@ static char (* DLSTDCALL CT_close) (unsigned short ctn);
#define PCSC_E_NOT_TRANSACTED 0x80100016
#define PCSC_E_READER_UNAVAILABLE 0x80100017
#define PCSC_E_NO_SERVICE 0x8010001D
+#define PCSC_E_SERVICE_STOPPED 0x8010001E
#define PCSC_W_REMOVED_CARD 0x80100069
/* Fix pcsc-lite ABI incompatibilty. */
@@ -907,6 +908,8 @@ pcsc_error_to_sw (long ec)
case PCSC_E_CANCELLED: rc = SW_HOST_ABORTED; break;
case PCSC_E_NO_MEMORY: rc = SW_HOST_OUT_OF_CORE; break;
case PCSC_E_TIMEOUT: rc = SW_HOST_CARD_IO_ERROR; break;
+ case PCSC_E_NO_SERVICE:
+ case PCSC_E_SERVICE_STOPPED:
case PCSC_E_UNKNOWN_READER: rc = SW_HOST_NO_READER; break;
case PCSC_E_SHARING_VIOLATION: rc = SW_HOST_LOCKING_FAILED; break;
case PCSC_E_NO_SMARTCARD: rc = SW_HOST_NO_CARD; break;
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/gnupg2.git
More information about the Pkg-gnupg-commit
mailing list