[Pcsclite-cvs-commit] r2564 - trunk/PCSC/src

rousseau at alioth.debian.org rousseau at alioth.debian.org
Sun Jun 17 16:47:19 UTC 2007


Author: rousseau
Date: 2007-06-17 16:47:19 +0000 (Sun, 17 Jun 2007)
New Revision: 2564

Modified:
   trunk/PCSC/src/winscard_msg.c
Log:
patch in revision 2535 was not correct for exteneded APDU. It generated
a buffer overflow.


Modified: trunk/PCSC/src/winscard_msg.c
===================================================================
--- trunk/PCSC/src/winscard_msg.c	2007-06-17 12:10:55 UTC (rev 2563)
+++ trunk/PCSC/src/winscard_msg.c	2007-06-17 16:47:19 UTC (rev 2564)
@@ -433,7 +433,14 @@
 		|| (SCARD_CONTROL_EXTENDED == command))
 	{
 		/* first block */
-		memcpy(msgStruct.data, data, size);
+		if (size > sizeof(msgStruct.data))
+			memcpy(msgStruct.data, data, sizeof(msgStruct.data));
+		else
+		{
+			memcpy(msgStruct.data, data, size);
+			memset(msgStruct.data+size, 0, sizeof(msgStruct.data)-size);
+		}
+			
 		ret = SHMMessageSend(&msgStruct, sizeof(msgStruct), dwClientID,
 			blockAmount);
 




More information about the Pcsclite-cvs-commit mailing list