From 71dfc0e1ebb56050b7297e1ccdd4729a1a19c957 Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Mon, 22 Mar 2021 17:05:56 +0100 Subject: [PATCH] fix uart out of bounds warning --- src/uart/emsuart_esp32.cpp | 6 ++++-- src/uart/emsuart_esp32.h | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/uart/emsuart_esp32.cpp b/src/uart/emsuart_esp32.cpp index 4bf88d954..63cc8a9fa 100644 --- a/src/uart/emsuart_esp32.cpp +++ b/src/uart/emsuart_esp32.cpp @@ -67,8 +67,10 @@ void IRAM_ATTR EMSuart::emsuart_rx_intr_handler(void * para) { drop_next_rx_ = true; // we have a overflow } } - if (rxbuf[length - 1]) { // check if last byte is break - length++; + if (length > 0 && length < EMS_MAXBUFFERSIZE) { + if (rxbuf[length - 1]) { // check if last byte is break + length++; + } } if ((!drop_next_rx_) && ((length == 2) || (length > 4))) { int baseType = 0; diff --git a/src/uart/emsuart_esp32.h b/src/uart/emsuart_esp32.h index 61b1bcb47..2eaad94be 100644 --- a/src/uart/emsuart_esp32.h +++ b/src/uart/emsuart_esp32.h @@ -46,10 +46,10 @@ #define EMS_TXMODE_HW 4 // LEGACY -#define EMSUART_TX_BIT_TIME 104 // bit time @9600 baud +#define EMSUART_TX_BIT_TIME 104 // bit time @9600 baud // EMS 1.0 -#define EMSUART_TX_BUSY_WAIT (EMSUART_TX_BIT_TIME / 8) // 13 +#define EMSUART_TX_BUSY_WAIT (EMSUART_TX_BIT_TIME / 8) // 13 #define EMSUART_TX_TIMEOUT (20 * EMSUART_TX_BIT_TIME / EMSUART_TX_BUSY_WAIT) #define EMSUART_TX_BRK_EMS (EMSUART_TX_BIT_TIME * 10)