[Pcsclite-cvs-commit] PCSC/src readerfactory.h,1.16,1.17 readerfactory.c,1.53,1.54 pcscdaemon.c,1.53,1.54

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


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

Modified Files:
	readerfactory.h readerfactory.c pcscdaemon.c 
Log Message:
do not use a dwAllocNum argument in RFAllocateReaderSpace() since the
number of contexts is _fixed_ by the declaration of sReadersContexts[].

It may be interpreted as a (false) possibility of dynamicity and will then
cause a buffer overflow if dwAllocNum > PCSCLITE_MAX_READERS_CONTEXTS


Index: readerfactory.h
===================================================================
RCS file: /cvsroot/pcsclite/PCSC/src/readerfactory.h,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- readerfactory.h	17 Jun 2004 06:31:07 -0000	1.16
+++ readerfactory.h	17 Jun 2004 08:41:04 -0000	1.17
@@ -122,7 +122,7 @@
 
 	typedef struct ReaderContext READER_CONTEXT, *PREADER_CONTEXT;
 
-	LONG RFAllocateReaderSpace(DWORD);
+	LONG RFAllocateReaderSpace(void);
 	LONG RFAddReader(LPTSTR, DWORD, LPTSTR, LPTSTR);
 	LONG RFRemoveReader(LPTSTR, DWORD);
 	LONG RFSetReaderName(PREADER_CONTEXT, LPTSTR, LPTSTR, DWORD, DWORD);

Index: readerfactory.c
===================================================================
RCS file: /cvsroot/pcsclite/PCSC/src/readerfactory.c,v
retrieving revision 1.53
retrieving revision 1.54
diff -u -d -r1.53 -r1.54
--- readerfactory.c	17 Jun 2004 08:11:22 -0000	1.53
+++ readerfactory.c	17 Jun 2004 08:41:04 -0000	1.54
@@ -40,15 +40,14 @@
 static PREADER_CONTEXT sReadersContexts[PCSCLITE_MAX_READERS_CONTEXTS];
 static DWORD dwNumReadersContexts = 0;
 
-LONG RFAllocateReaderSpace(DWORD dwAllocNum)
+LONG RFAllocateReaderSpace(void)
 {
 	int i;   					/* Counter */
-	LONG rv; 					/* Return tester */
 
 	/*
 	 * Allocate each reader structure 
 	 */
-	for (i = 0; i < dwAllocNum; i++)
+	for (i = 0; i < PCSCLITE_MAX_READERS_CONTEXTS; i++)
 	{
 		sReadersContexts[i] = (PREADER_CONTEXT) malloc(sizeof(READER_CONTEXT));
 		(sReadersContexts[i])->vHandle = NULL;
@@ -57,9 +56,7 @@
 	/*
 	 * Create public event structures 
 	 */
-	rv = EHInitializeEventStructures();
-
-	return rv;
+	return EHInitializeEventStructures();
 }
 
 LONG RFAddReader(LPTSTR lpcReader, DWORD dwPort, LPTSTR lpcLibrary, LPTSTR lpcDevice)

Index: pcscdaemon.c
===================================================================
RCS file: /cvsroot/pcsclite/PCSC/src/pcscdaemon.c,v
retrieving revision 1.53
retrieving revision 1.54
diff -u -d -r1.53 -r1.54
--- pcscdaemon.c	17 Jun 2004 06:44:01 -0000	1.53
+++ pcscdaemon.c	17 Jun 2004 08:41:04 -0000	1.54
@@ -397,7 +397,7 @@
 	/*
 	 * Allocate memory for reader structures 
 	 */
-	RFAllocateReaderSpace(PCSCLITE_MAX_READERS_CONTEXTS);
+	RFAllocateReaderSpace();
 
 	/*
 	 * Grab the information from the reader.conf