[Pcsclite-cvs-commit] Drivers/ccid/src ifdhandler.c,1.45,1.46

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


Update of /cvsroot/pcsclite/Drivers/ccid/src
In directory haydn:/tmp/cvs-serv17136

Modified Files:
	ifdhandler.c 
Log Message:
IFDHCreateChannel()/IFDHCreateChannelByName(): if the OpenPort() call
fails we ReleaseReaderIndex() and do not call ccid_open_hack()


Index: ifdhandler.c
===================================================================
RCS file: /cvsroot/pcsclite/Drivers/ccid/src/ifdhandler.c,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -d -r1.45 -r1.46
--- ifdhandler.c	4 Aug 2004 21:30:14 -0000	1.45
+++ ifdhandler.c	6 Aug 2004 11:21:56 -0000	1.46
@@ -84,10 +84,13 @@
 	{
 		DEBUG_CRITICAL("failed");
 		return_value = IFD_COMMUNICATION_ERROR;
-	}
 
-	/* Maybe we have a special treatment for this reader */
-	ccid_open_hack(reader_index);
+		/* release the allocated reader_index */
+		ReleaseReaderIndex(reader_index);
+	}
+	else
+		/* Maybe we have a special treatment for this reader */
+		ccid_open_hack(reader_index);
 
 #ifdef HAVE_PTHREAD
 	pthread_mutex_unlock(&ifdh_context_mutex);
@@ -158,10 +161,13 @@
 	{
 		DEBUG_CRITICAL("failed");
 		return_value = IFD_COMMUNICATION_ERROR;
-	}
 
-	/* Maybe we have a special treatment for this reader */
-	ccid_open_hack(reader_index);
+		/* release the allocated reader_index */
+		ReleaseReaderIndex(reader_index);
+	}
+	else
+		/* Maybe we have a special treatment for this reader */
+		ccid_open_hack(reader_index);
 
 #ifdef HAVE_PTHREAD
 	pthread_mutex_unlock(&ifdh_context_mutex);