aboutsummaryrefslogtreecommitdiffstats
path: root/LUFA/Drivers/USB/Class/Device/CDC.c
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2010-05-06 11:13:24 +0000
committerDean Camera <dean@fourwalledcubicle.com>2010-05-06 11:13:24 +0000
commitcde2afc50e25054a0ba21c4454e7101d7ac02a35 (patch)
tree6cccd0f8fc206054b4dbc412491c4937b02571c1 /LUFA/Drivers/USB/Class/Device/CDC.c
parentc3db72afdc9928afbf2a8986f6970aa85dd9902a (diff)
downloadlufa-cde2afc50e25054a0ba21c4454e7101d7ac02a35.tar.gz
lufa-cde2afc50e25054a0ba21c4454e7101d7ac02a35.tar.bz2
lufa-cde2afc50e25054a0ba21c4454e7101d7ac02a35.zip
Ensure that the CDC class drivers return 0 if the number of unread bytes is queried and the bank has become empty.
Diffstat (limited to 'LUFA/Drivers/USB/Class/Device/CDC.c')
-rw-r--r--LUFA/Drivers/USB/Class/Device/CDC.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/LUFA/Drivers/USB/Class/Device/CDC.c b/LUFA/Drivers/USB/Class/Device/CDC.c
index 4cdea9485..ade2a1b50 100644
--- a/LUFA/Drivers/USB/Class/Device/CDC.c
+++ b/LUFA/Drivers/USB/Class/Device/CDC.c
@@ -195,9 +195,14 @@ uint16_t CDC_Device_BytesReceived(USB_ClassInfo_CDC_Device_t* const CDCInterface
if (Endpoint_IsOUTReceived())
{
if (!(Endpoint_BytesInEndpoint()))
- Endpoint_ClearOUT();
-
- return Endpoint_BytesInEndpoint();
+ {
+ Endpoint_ClearOUT();
+ return 0;
+ }
+ else
+ {
+ return Endpoint_BytesInEndpoint();
+ }
}
else
{