[Pcsclite-cvs-commit] r5795 - /trunk/PCSC/src/winscard_clnt.c

rousseau at users.alioth.debian.org rousseau at users.alioth.debian.org
Thu Jun 16 08:19:14 UTC 2011


Author: rousseau
Date: Thu Jun 16 08:19:13 2011
New Revision: 5795

URL: http://svn.debian.org/wsvn/pcsclite/?sc=1&rev=5795
Log:
SCardGetStatusChange(): catch possible sign extension problems from 32
to 64-bits integers

Storing INFINITE (0xFFFFFFFF) into an int parameter and then passing it
to SCardGetStatusChange() will expand the int into a DWORD (unsigned
long). On 64-bits architecture it will become 0xFFFFFFFFFFFFFFFF (-1).

See OpenSC bug at http://www.opensc-project.org/pipermail/opensc-devel/2011-June/016848.html

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=5795&op=diff
==============================================================================
--- trunk/PCSC/src/winscard_clnt.c (original)
+++ trunk/PCSC/src/winscard_clnt.c Thu Jun 16 08:19:13 2011
@@ -1886,6 +1886,9 @@
 		if (readerStates[j].readerName[0] != '\0')
 			currentReaderCount++;
 
+	/* catch possible sign extension problems from 32 to 64-bits integers */
+	if (-1 == dwTimeout)
+		dwTimeout = INFINITE;
 	if (INFINITE == dwTimeout)
 		dwTime = 60*1000;	/* "infinite" timeout */
 	else




More information about the Pcsclite-cvs-commit mailing list