[Pcsclite-cvs-commit] PCSC/src ifdwrapper.c,1.14,1.15

rousseau@haydn.debian.org rousseau@haydn.debian.org


Update of /cvsroot/pcsclite/PCSC/src
In directory haydn:/tmp/cvs-serv17567

Modified Files:
	ifdwrapper.c 
Log Message:
in IFDControl_v2() and IFDControl(), do not return between SYS_MutexLock
and SYS_MutexUnLock but set rv to the correct value. Otherwise the daemon
is dead locked.


Index: ifdwrapper.c
===================================================================
RCS file: /cvsroot/pcsclite/PCSC/src/ifdwrapper.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- ifdwrapper.c	19 Apr 2004 16:28:46 -0000	1.14
+++ ifdwrapper.c	6 May 2004 08:58:12 -0000	1.15
@@ -701,12 +701,11 @@
 	/*
 	 * LOCK THIS CODE REGION 
 	 */
-
 	SYS_MutexLock(rContext->mMutex);
 
 #ifndef PCSCLITE_STATIC_DRIVER
 	if (rContext->dwVersion != IFD_HVERSION_1_0)
-		return SCARD_E_UNSUPPORTED_FEATURE;
+		rv = SCARD_E_UNSUPPORTED_FEATURE;
 	else
 		rv = (*IFDH_control_v2) (rContext->dwSlot, TxBuffer, TxLength,
 			RxBuffer, RxLength);
@@ -718,7 +717,6 @@
 			RxBuffer, RxLength);
 #endif
 	SYS_MutexUnLock(rContext->mMutex);
-
 	/*
 	 * END OF LOCKED REGION 
 	 */
@@ -779,7 +777,7 @@
 
 #ifndef PCSCLITE_STATIC_DRIVER
 	if (rContext->dwVersion < IFD_HVERSION_3_0)
-		return SCARD_E_UNSUPPORTED_FEATURE;
+		rv = SCARD_E_UNSUPPORTED_FEATURE;
 	else
 		rv = (*IFDH_control) (rContext->dwSlot, ControlCode, TxBuffer,
 			TxLength, RxBuffer, RxLength, BytesReturned);