From f03f967a38e5d96cd9d0625347e8d5fb39b55c5c Mon Sep 17 00:00:00 2001 From: Mihai Tudor Panu Date: Tue, 22 Sep 2015 16:13:30 -0700 Subject: [PATCH] nrf24l01: limit data reads/writes to max buffer size Signed-off-by: Mihai Tudor Panu --- src/nrf24l01/nrf24l01.cxx | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/nrf24l01/nrf24l01.cxx b/src/nrf24l01/nrf24l01.cxx index 168bf0b4..1b8b702d 100644 --- a/src/nrf24l01/nrf24l01.cxx +++ b/src/nrf24l01/nrf24l01.cxx @@ -407,6 +407,9 @@ NRF24L01::sendBeaconingMsg (uint8_t * msg) { void NRF24L01::writeBytes (uint8_t * dataout, uint8_t * datain, uint8_t len) { + if(len > MAX_BUFFER){ + len = MAX_BUFFER; + } for (uint8_t i = 0; i < len; i++) { if (datain != NULL) { datain[i] = m_spi.writeByte(dataout[i]); @@ -497,6 +500,10 @@ NRF24L01::bleWhiten (uint8_t* data, uint8_t len, uint8_t whitenCoeff) { void NRF24L01::blePacketEncode(uint8_t* packet, uint8_t len, uint8_t chan) { + if(len > MAX_BUFFER){ + len = MAX_BUFFER; + } + //length is of packet, including crc. pre-populate crc in packet with initial crc value! uint8_t i, dataLen = len - 3;