dune
dune copied to clipboard
DUNE/Hardware/LUCL: Possible buffer overflow
Hi,
I think this line might cause a buffer overflow?
In the lines above it we check if the data we're trying to write is smaller than 64 bytes
if (data_size > c_data_max)
throw std::runtime_error("maximum data size exceeded");
but then the total buffer size for the message is only 32
uint8_t msg[32] = {c_sync, (uint8_t)(data_size + 1), cmd};
std::memcpy(msg + 3, data, data_size);