[Pcsclite-cvs-commit] r5881 - /trunk/PCSC/src/winscard_clnt.c
rousseau at users.alioth.debian.org
rousseau at users.alioth.debian.org
Mon Aug 8 14:17:28 UTC 2011
Author: rousseau
Date: Mon Aug 8 14:17:27 2011
New Revision: 5881
URL: http://svn.debian.org/wsvn/pcsclite/?sc=1&rev=5881
Log:
SCardGetStatusChange(): check all the readers are already known and
return SCARD_E_UNKNOWN_READER if a reader name is not present.
Windows XP has this behavior.
Modified:
trunk/PCSC/src/winscard_clnt.c
Modified: trunk/PCSC/src/winscard_clnt.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/PCSC/src/winscard_clnt.c?rev=5881&op=diff
==============================================================================
--- trunk/PCSC/src/winscard_clnt.c (original)
+++ trunk/PCSC/src/winscard_clnt.c Mon Aug 8 14:17:27 2011
@@ -1874,6 +1874,31 @@
if (rv != SCARD_S_SUCCESS)
goto end;
+ /* check all the readers are already known */
+ for (j=0; j<cReaders; j++)
+ {
+ const char *readerName;
+ int i;
+
+ readerName = rgReaderStates[j].szReader;
+ for (i = 0; i < PCSCLITE_MAX_READERS_CONTEXTS; i++)
+ {
+ if (strcmp(readerName, readerStates[i].readerName) == 0)
+ break;
+ }
+
+ /* The requested reader name is not recognized */
+ if (i == PCSCLITE_MAX_READERS_CONTEXTS)
+ {
+ /* PnP special reader? */
+ if (strcasecmp(readerName, "\\\\?PnP?\\Notification") != 0)
+ {
+ rv = SCARD_E_UNKNOWN_READER;
+ goto end;
+ }
+ }
+ }
+
/* Clear the event state for all readers */
for (j = 0; j < cReaders; j++)
rgReaderStates[j].dwEventState = 0;
More information about the Pcsclite-cvs-commit
mailing list