[Pcsclite-cvs-commit] r2083 - trunk/Drivers/ccid/src
Ludovic Rousseau
rousseau at costa.debian.org
Mon Jul 3 12:51:59 UTC 2006
Author: rousseau
Date: 2006-07-03 12:51:59 +0000 (Mon, 03 Jul 2006)
New Revision: 2083
Modified:
trunk/Drivers/ccid/src/ccid_usb.c
Log:
ReadUSB(): detect and ignore duplicated CCID frames
Modified: trunk/Drivers/ccid/src/ccid_usb.c
===================================================================
--- trunk/Drivers/ccid/src/ccid_usb.c 2006-06-30 14:04:33 UTC (rev 2082)
+++ trunk/Drivers/ccid/src/ccid_usb.c 2006-07-03 12:51:59 UTC (rev 2083)
@@ -249,7 +249,7 @@
else
return STATUS_UNSUCCESSFUL;
vendorID = strlen(keyValue);
- alias = 0x1D;
+ alias = 0x1C;
for (; vendorID--;)
alias ^= keyValue[vendorID];
@@ -493,7 +493,9 @@
{
int rv;
char debug_header[] = "<- 121234 ";
+ _ccid_descriptor *ccid_descriptor = get_ccid_descriptor(reader_index);
+read_again:
sprintf(debug_header, "<- %06X ", (int)reader_index);
rv = usb_bulk_read(usbDevice[reader_index].handle,
@@ -513,6 +515,13 @@
DEBUG_XXD(debug_header, buffer, *length);
+#define BSEQ_OFFSET 6
+ if (buffer[BSEQ_OFFSET] < *ccid_descriptor->pbSeq -1)
+ {
+ DEBUG_INFO("Duplicate frame detected");
+ goto read_again;
+ }
+
return STATUS_SUCCESS;
} /* ReadUSB */
More information about the Pcsclite-cvs-commit
mailing list