[Pcsclite-cvs-commit] r5305 - /trunk/PCSC/src/winscard.c

rousseau at users.alioth.debian.org rousseau at users.alioth.debian.org
Tue Oct 12 11:44:07 UTC 2010


Author: rousseau
Date: Tue Oct 12 11:44:00 2010
New Revision: 5305

URL: http://svn.debian.org/wsvn/pcsclite/?sc=1&rev=5305
Log:
SCardReconnect(), SCardDisconnect() and SCardEndTransaction(): reset the
value of dwAtrLen before the second call to IFDPowerICC() so that the
driver gets a correct value if the first call to
IFDPowerICC(IFD_POWER_DOWN) set dwAtrLen=0

Thanks to Frank Morgner for the bug report
Closes: [#312754] IFDHPowerICC is called with IFD_POWER_UP and *AtrLength==0

Modified:
    trunk/PCSC/src/winscard.c

Modified: trunk/PCSC/src/winscard.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/PCSC/src/winscard.c?rev=5305&op=diff
==============================================================================
--- trunk/PCSC/src/winscard.c (original)
+++ trunk/PCSC/src/winscard.c Tue Oct 12 11:44:00 2010
@@ -583,6 +583,7 @@
 			rv = IFDPowerICC(rContext, IFD_POWER_DOWN,
 				rContext->readerState->cardAtr,
 				&dwAtrLen);
+			dwAtrLen = rContext->readerState->cardAtrLength;
 			rv = IFDPowerICC(rContext, IFD_POWER_UP,
 				rContext->readerState->cardAtr,
 				&dwAtrLen);
@@ -854,6 +855,7 @@
 			rv = IFDPowerICC(rContext, IFD_POWER_DOWN,
 				rContext->readerState->cardAtr,
 				&dwAtrLen);
+			dwAtrLen = rContext->readerState->cardAtrLength;
 			rv = IFDPowerICC(rContext, IFD_POWER_UP,
 				rContext->readerState->cardAtr,
 				&dwAtrLen);
@@ -1052,6 +1054,7 @@
 			rv = IFDPowerICC(rContext, IFD_POWER_DOWN,
 				rContext->readerState->cardAtr,
 				&dwAtrLen);
+			dwAtrLen = rContext->readerState->cardAtrLength;
 			rv = IFDPowerICC(rContext, IFD_POWER_UP,
 				rContext->readerState->cardAtr,
 				&dwAtrLen);




More information about the Pcsclite-cvs-commit mailing list