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

rousseau at users.alioth.debian.org rousseau at users.alioth.debian.org
Wed Oct 13 15:15:39 UTC 2010


Author: rousseau
Date: Wed Oct 13 15:15:36 2010
New Revision: 5313

URL: http://svn.debian.org/wsvn/pcsclite/?sc=1&rev=5313
Log:
Correctly set dwAtrLen to the sizeof the ATR array before calling
IFDPowerICC().

Some drivers do not write more that dwAtrLen bytes in cardAtr array.

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=5313&op=diff
==============================================================================
--- trunk/PCSC/src/winscard.c (original)
+++ trunk/PCSC/src/winscard.c Wed Oct 13 15:15:36 2010
@@ -573,7 +573,7 @@
 		/*
 		 * Currently pcsc-lite keeps the card powered constantly
 		 */
-		dwAtrLen = rContext->readerState->cardAtrLength;
+		dwAtrLen = sizeof(rContext->readerState->cardAtr);
 		if (SCARD_RESET_CARD == dwInitialization)
 			rv = IFDPowerICC(rContext, IFD_RESET,
 				rContext->readerState->cardAtr,
@@ -583,7 +583,7 @@
 			rv = IFDPowerICC(rContext, IFD_POWER_DOWN,
 				rContext->readerState->cardAtr,
 				&dwAtrLen);
-			dwAtrLen = rContext->readerState->cardAtrLength;
+			dwAtrLen = sizeof(rContext->readerState->cardAtr);
 			rv = IFDPowerICC(rContext, IFD_POWER_UP,
 				rContext->readerState->cardAtr,
 				&dwAtrLen);
@@ -845,7 +845,7 @@
 		/*
 		 * Currently pcsc-lite keeps the card powered constantly
 		 */
-		dwAtrLen = rContext->readerState->cardAtrLength;
+		dwAtrLen = sizeof(rContext->readerState->cardAtr);
 		if (SCARD_RESET_CARD == dwDisposition)
 			rv = IFDPowerICC(rContext, IFD_RESET,
 				rContext->readerState->cardAtr,
@@ -855,7 +855,7 @@
 			rv = IFDPowerICC(rContext, IFD_POWER_DOWN,
 				rContext->readerState->cardAtr,
 				&dwAtrLen);
-			dwAtrLen = rContext->readerState->cardAtrLength;
+			dwAtrLen = sizeof(rContext->readerState->cardAtr);
 			rv = IFDPowerICC(rContext, IFD_POWER_UP,
 				rContext->readerState->cardAtr,
 				&dwAtrLen);
@@ -1044,7 +1044,7 @@
 		/*
 		 * Currently pcsc-lite keeps the card always powered
 		 */
-		dwAtrLen = rContext->readerState->cardAtrLength;
+		dwAtrLen = sizeof(rContext->readerState->cardAtr);
 		if (SCARD_RESET_CARD == dwDisposition)
 			rv = IFDPowerICC(rContext, IFD_RESET,
 				rContext->readerState->cardAtr,
@@ -1054,7 +1054,7 @@
 			rv = IFDPowerICC(rContext, IFD_POWER_DOWN,
 				rContext->readerState->cardAtr,
 				&dwAtrLen);
-			dwAtrLen = rContext->readerState->cardAtrLength;
+			dwAtrLen = sizeof(rContext->readerState->cardAtr);
 			rv = IFDPowerICC(rContext, IFD_POWER_UP,
 				rContext->readerState->cardAtr,
 				&dwAtrLen);




More information about the Pcsclite-cvs-commit mailing list