[Pcsclite-cvs-commit] r6828 - trunk/Drivers/ccid/src
ludovic.rousseau at free.fr
ludovic.rousseau at free.fr
Tue Jan 21 17:36:11 UTC 2014
Author: rousseau
Date: 2014-01-21 17:36:11 +0000 (Tue, 21 Jan 2014)
New Revision: 6828
Modified:
trunk/Drivers/ccid/src/ccid_usb.c
Log:
get_end_points(): be more strict for bInterfaceClass = 255
If the bInterfaceClass is 255 (proprietary) and then not, but possibly,
a CCID interface (on an old reader) we also check the extra_length is
valid for a CCID device.
The problem was with a composite device with 2 interfaces: one non-CCID
interface with bInterfaceClass = 255 and a CCID interface with
bInterfaceClass = 11. The first non-CCID interface must be skipped.
Modified: trunk/Drivers/ccid/src/ccid_usb.c
===================================================================
--- trunk/Drivers/ccid/src/ccid_usb.c 2014-01-21 17:29:00 UTC (rev 6827)
+++ trunk/Drivers/ccid/src/ccid_usb.c 2014-01-21 17:36:11 UTC (rev 6828)
@@ -1012,7 +1012,8 @@
/* CCID Class? */
if (desc->interface[i].altsetting->bInterfaceClass == 0xb
#ifdef ALLOW_PROPRIETARY_CLASS
- || desc->interface[i].altsetting->bInterfaceClass == 0xff
+ || (desc->interface[i].altsetting->bInterfaceClass == 0xff
+ && 54 == desc->interface[i].altsetting->extra_length)
#endif
)
{
More information about the Pcsclite-cvs-commit
mailing list