[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