[Pcsclite-cvs-commit] r4967 - in /trunk/PCSC/src: winscard_msg.h winscard_svc.c

rousseau at users.alioth.debian.org rousseau at users.alioth.debian.org
Sat May 29 11:28:18 UTC 2010


Author: rousseau
Date: Sat May 29 11:28:16 2010
New Revision: 4967

URL: http://svn.debian.org/wsvn/pcsclite/?sc=1&rev=4967
Log:
Avoids a crash if a client sends a unknown command.

Thanks to Martin Vogt for the bug report
http://archives.neohapsis.com/archives/dev/muscle/2010-q2/0096.html

Modified:
    trunk/PCSC/src/winscard_msg.h
    trunk/PCSC/src/winscard_svc.c

Modified: trunk/PCSC/src/winscard_msg.h
URL: http://svn.debian.org/wsvn/pcsclite/trunk/PCSC/src/winscard_msg.h?rev=4967&op=diff
==============================================================================
--- trunk/PCSC/src/winscard_msg.h (original)
+++ trunk/PCSC/src/winscard_msg.h Sat May 29 11:28:16 2010
@@ -56,6 +56,7 @@
 	 */
 	enum pcsc_msg_commands
 	{
+		CMD_ENUM_FIRST,
 		SCARD_ESTABLISH_CONTEXT = 0x01,	/**< used by SCardEstablishContext() */
 		SCARD_RELEASE_CONTEXT = 0x02,	/**< used by SCardReleaseContext() */
 		SCARD_LIST_READERS = 0x03,		/**< used by SCardListReaders() */
@@ -75,7 +76,8 @@
 		CMD_VERSION = 0x11,				/**< get the client/server protocol version */
 		CMD_GET_READERS_STATE = 0x12,	/**< get the readers state */
 		CMD_WAIT_READER_STATE_CHANGE = 0x13,	/**< wait for a reader state change */
-		CMD_STOP_WAITING_READER_STATE_CHANGE = 0x14	/**< stop waiting for a reader state change */
+		CMD_STOP_WAITING_READER_STATE_CHANGE = 0x14,	/**< stop waiting for a reader state change */
+		CMD_ENUM_LAST
 	};
 
 	struct client_struct

Modified: trunk/PCSC/src/winscard_svc.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/PCSC/src/winscard_svc.c?rev=4967&op=diff
==============================================================================
--- trunk/PCSC/src/winscard_svc.c (original)
+++ trunk/PCSC/src/winscard_svc.c Sat May 29 11:28:16 2010
@@ -303,8 +303,10 @@
 			goto exit;
 		}
 
-		Log3(PCSC_LOG_DEBUG, "Received command: %s from client %d",
-			CommandsText[header.command], filedes);
+		if ((header.command > CMD_ENUM_FIRST)
+			&& (header.command < CMD_ENUM_LAST))
+			Log3(PCSC_LOG_DEBUG, "Received command: %s from client %d",
+				CommandsText[header.command], filedes);
 
 		switch (header.command)
 		{




More information about the Pcsclite-cvs-commit mailing list