From d881e0cbf691793ab6e5fe24f091549a007e009a Mon Sep 17 00:00:00 2001
From: Dean Camera <dean@fourwalledcubicle.com>
Date: Wed, 7 Sep 2011 12:05:37 +0000
Subject: [PATCH] Fixed incorrect buffer size check in the USBtoSerial project
 (thanks to Yuri A Nikiforov).

---
 LUFA/ManPages/ChangeLog.txt        | 1 +
 Projects/USBtoSerial/USBtoSerial.c | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt
index ae9976c83..49e0955fe 100644
--- a/LUFA/ManPages/ChangeLog.txt
+++ b/LUFA/ManPages/ChangeLog.txt
@@ -89,6 +89,7 @@
   *   - Fixed compile errors in the incomplete BluetoothHost demo application (thanks to Timo Lindfors)
   *   - Fixed incorrect Dataflash buffer use in the DataflashManager_WriteBlocks_RAM() function of several demos/projects (thanks to Jeremy Willden)
   *   - Fixed incorrect logging interval (always 500ms longer than requested) in the TempDataLogger project
+  *   - Fixed incorrect buffer size check in the USBtoSerial project (thanks to Yuri A Nikiforov)
   *
   *  \section Sec_ChangeLog110528 Version 110528
   *  <b>New:</b>
diff --git a/Projects/USBtoSerial/USBtoSerial.c b/Projects/USBtoSerial/USBtoSerial.c
index fe685d6e4..c34fcf70a 100644
--- a/Projects/USBtoSerial/USBtoSerial.c
+++ b/Projects/USBtoSerial/USBtoSerial.c
@@ -100,7 +100,7 @@ int main(void)
 		
 		/* Check if the UART receive buffer flush timer has expired or the buffer is nearly full */
 		uint16_t BufferCount = RingBuffer_GetCount(&USARTtoUSB_Buffer);
-		if ((TIFR0 & (1 << TOV0)) || (BufferCount > 200))
+		if ((TIFR0 & (1 << TOV0)) || (BufferCount > (uint8_t)(sizeof(USARTtoUSB_Buffer_Data) * .75)))
 		{
 			/* Clear flush timer expiry flag */
 			TIFR0 |= (1 << TOV0);
-- 
GitLab