aboutsummaryrefslogtreecommitdiffstats
path: root/LUFA/Drivers/USB/Class/Device/CDC.c
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2009-08-11 01:52:15 +0000
committerDean Camera <dean@fourwalledcubicle.com>2009-08-11 01:52:15 +0000
commit8711dc7ced0ed02a33a96222d86bd27f65c239ed (patch)
tree0903f849fab0d0d26d6d5bd1af94327faebb7939 /LUFA/Drivers/USB/Class/Device/CDC.c
parenta459f10b0c1a3e02f160ff3a1a2a0b45ae5b69a7 (diff)
downloadlufa-8711dc7ced0ed02a33a96222d86bd27f65c239ed.tar.gz
lufa-8711dc7ced0ed02a33a96222d86bd27f65c239ed.tar.bz2
lufa-8711dc7ced0ed02a33a96222d86bd27f65c239ed.zip
Fix issue in CDC device class driver where received data the size of the data endpoint could lock up the driver.
Further work on the new CDC and HID host mode class drivers. Reset changelog et. al. to reset development information for the new version currently under development.
Diffstat (limited to 'LUFA/Drivers/USB/Class/Device/CDC.c')
-rw-r--r--LUFA/Drivers/USB/Class/Device/CDC.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/LUFA/Drivers/USB/Class/Device/CDC.c b/LUFA/Drivers/USB/Class/Device/CDC.c
index 0d6b37850..47290ceb6 100644
--- a/LUFA/Drivers/USB/Class/Device/CDC.c
+++ b/LUFA/Drivers/USB/Class/Device/CDC.c
@@ -161,6 +161,9 @@ uint16_t CDC_Device_BytesReceived(USB_ClassInfo_CDC_Device_t* const CDCInterface
{
Endpoint_SelectEndpoint(CDCInterfaceInfo->Config.DataOUTEndpointNumber);
+ if (Endpoint_IsOUTReceived() && !(Endpoint_BytesInEndpoint()))
+ Endpoint_ClearOUT();
+
return Endpoint_BytesInEndpoint();
}