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

rousseau at users.alioth.debian.org rousseau at users.alioth.debian.org
Mon Jul 26 13:21:25 UTC 2010


Author: rousseau
Date: Mon Jul 26 13:21:18 2010
New Revision: 5069

URL: http://svn.debian.org/wsvn/pcsclite/?sc=1&rev=5069
Log:
Get the value of rContext before its use. A simple call to
SCardTransmit() crashed with a NULL pointer.

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=5069&op=diff
==============================================================================
--- trunk/PCSC/src/winscard.c (original)
+++ trunk/PCSC/src/winscard.c Mon Jul 26 13:21:18 2010
@@ -541,6 +541,7 @@
 	if (pdwActiveProtocol == NULL)
 		return SCARD_E_INVALID_PARAMETER;
 
+	/* get rContext corresponding to hCard */
 	rv = RFReaderInfoById(hCard, &rContext);
 	if (rv != SCARD_S_SUCCESS)
 		return rv;
@@ -808,6 +809,7 @@
 	if (hCard == 0)
 		return SCARD_E_INVALID_HANDLE;
 
+	/* get rContext corresponding to hCard */
 	rv = RFReaderInfoById(hCard, &rContext);
 	if (rv != SCARD_S_SUCCESS)
 		return rv;
@@ -989,11 +991,8 @@
 	if (hCard == 0)
 		return SCARD_E_INVALID_HANDLE;
 
+	/* get rContext corresponding to hCard */
 	rv = RFReaderInfoById(hCard, &rContext);
-
-	/*
-	 * Cannot find the hCard in this context
-	 */
 	if (rv != SCARD_S_SUCCESS)
 		return rv;
 
@@ -1044,11 +1043,8 @@
 		&& (dwDisposition != SCARD_EJECT_CARD))
 	return SCARD_E_INVALID_VALUE;
 
+	/* get rContext corresponding to hCard */
 	rv = RFReaderInfoById(hCard, &rContext);
-
-	/*
-	 * Cannot find the hCard in this context
-	 */
 	if (rv != SCARD_S_SUCCESS)
 		return rv;
 
@@ -1188,11 +1184,8 @@
 	if (hCard == 0)
 		return SCARD_E_INVALID_HANDLE;
 
+	/* get rContext corresponding to hCard */
 	rv = RFReaderInfoById(hCard, &rContext);
-
-	/*
-	 * Cannot find the hCard in this context
-	 */
 	if (rv != SCARD_S_SUCCESS)
 		return rv;
 
@@ -1223,13 +1216,16 @@
 	if (hCard == 0)
 		return SCARD_E_INVALID_HANDLE;
 
+	/* get rContext corresponding to hCard */
+	rv = RFReaderInfoById(hCard, &rContext);
+	if (rv != SCARD_S_SUCCESS)
+		return rv;
+
 	/*
 	 * Make sure no one has a lock on this reader
 	 */
 	if ((rv = RFCheckSharing(hCard, rContext)) != SCARD_S_SUCCESS)
 		return rv;
-
-	rv = RFReaderInfoById(hCard, &rContext);
 
 	/*
 	 * Cannot find the hCard in this context
@@ -1362,14 +1358,15 @@
 	if (0 == hCard)
 		return SCARD_E_INVALID_HANDLE;
 
+	/* get rContext corresponding to hCard */
+	rv = RFReaderInfoById(hCard, &rContext);
+	if (rv != SCARD_S_SUCCESS)
+		return rv;
+
 	/*
 	 * Make sure no one has a lock on this reader
 	 */
 	if ((rv = RFCheckSharing(hCard, rContext)) != SCARD_S_SUCCESS)
-		return rv;
-
-	rv = RFReaderInfoById(hCard, &rContext);
-	if (rv != SCARD_S_SUCCESS)
 		return rv;
 
 	if (IFD_HVERSION_2_0 == rContext->version)
@@ -1411,14 +1408,15 @@
 	if (0 == hCard)
 		return SCARD_E_INVALID_HANDLE;
 
+	/* get rContext corresponding to hCard */
+	rv = RFReaderInfoById(hCard, &rContext);
+	if (rv != SCARD_S_SUCCESS)
+		return rv;
+
 	/*
 	 * Make sure no one has a lock on this reader
 	 */
 	if ((rv = RFCheckSharing(hCard, rContext)) != SCARD_S_SUCCESS)
-		return rv;
-
-	rv = RFReaderInfoById(hCard, &rContext);
-	if (rv != SCARD_S_SUCCESS)
 		return rv;
 
 	/*
@@ -1485,14 +1483,15 @@
 	if (0 == hCard)
 		return SCARD_E_INVALID_HANDLE;
 
+	/* get rContext corresponding to hCard */
+	rv = RFReaderInfoById(hCard, &rContext);
+	if (rv != SCARD_S_SUCCESS)
+		return rv;
+
 	/*
 	 * Make sure no one has a lock on this reader
 	 */
 	if ((rv = RFCheckSharing(hCard, rContext)) != SCARD_S_SUCCESS)
-		return rv;
-
-	rv = RFReaderInfoById(hCard, &rContext);
-	if (rv != SCARD_S_SUCCESS)
 		return rv;
 
 	/*
@@ -1550,14 +1549,15 @@
 	if (dwRxLength < 2)
 		return SCARD_E_INSUFFICIENT_BUFFER;
 
+	/* get rContext corresponding to hCard */
+	rv = RFReaderInfoById(hCard, &rContext);
+	if (rv != SCARD_S_SUCCESS)
+		return rv;
+
 	/*
 	 * Make sure no one has a lock on this reader
 	 */
 	if ((rv = RFCheckSharing(hCard, rContext)) != SCARD_S_SUCCESS)
-		return rv;
-
-	rv = RFReaderInfoById(hCard, &rContext);
-	if (rv != SCARD_S_SUCCESS)
 		return rv;
 
 	/*




More information about the Pcsclite-cvs-commit mailing list