[Pcsclite-cvs-commit] Drivers/ccid/src/protocol_t1 protocol_t1.c,1.7,1.8

rousseau@quantz.debian.org rousseau@quantz.debian.org
Thu, 12 Feb 2004 17:11:10 +0100


Update of /cvsroot/pcsclite/Drivers/ccid/src/protocol_t1
In directory quantz:/tmp/cvs-serv26521/src/protocol_t1

Modified Files:
	protocol_t1.c 
Log Message:
return with a error if the received bloc in less than 4 bytes (T=0
error response for example)


Index: protocol_t1.c
===================================================================
RCS file: /cvsroot/pcsclite/Drivers/ccid/src/protocol_t1/protocol_t1.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- protocol_t1.c	11 Feb 2004 14:36:05 -0000	1.7
+++ protocol_t1.c	12 Feb 2004 16:11:08 -0000	1.8
@@ -79,8 +79,10 @@
 		return ret;
 
 	if (PROTOCOL_T1_OK == Protocol_T1_ReceiveBlock(t1, &sblock))
+	{
 		t1 -> ifsd = T1_Block_GetInf(sblock)[0];
-	T1_Block_Delete(sblock);
+		T1_Block_Delete(sblock);
+	}
 
 	return PROTOCOL_T1_OK;
 } /* Protocol_T1_Negociate_IFSD */
@@ -329,7 +331,7 @@
   int len = sizeof(cmd);
 
   /* Receive T=1 block */
-  if (CCID_Receive(t1->lun, &len, cmd) != IFD_SUCCESS)
+  if ((CCID_Receive(t1->lun, &len, cmd) != IFD_SUCCESS) || (len < 4))
     {
       ret = PROTOCOL_T1_ICC_ERROR;
       (*block) = NULL;