From 31d4a750d8b0aae9d3cd7fae9032480b3c1d08ef Mon Sep 17 00:00:00 2001 From: Francesco Valla Date: Fri, 4 Jul 2025 10:57:26 +0200 Subject: [PATCH] EthernetPacketizer: do a size check on incoming bytestream An incoming bytestream can be less than 24 bytes, leading to exceptions when accessing its data (or allocating the vector for its payload). Perform a size check before trying to decode the bytestream and discard invalid incoming streams. Signed-off-by: Francesco Valla --- communication/ethernetpacketizer.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/communication/ethernetpacketizer.cpp b/communication/ethernetpacketizer.cpp index c4adf93..6d18371 100644 --- a/communication/ethernetpacketizer.cpp +++ b/communication/ethernetpacketizer.cpp @@ -133,6 +133,10 @@ EthernetPacketizer::EthernetPacket::EthernetPacket(const uint8_t* data, size_t s int EthernetPacketizer::EthernetPacket::loadBytestream(const std::vector& bytestream) { errorWhileDecodingFromBytestream = 0; + if (bytestream.size() < 24) { + errorWhileDecodingFromBytestream = 1; + return errorWhileDecodingFromBytestream; + } for(size_t i = 0; i < 6; i++) destMAC[i] = bytestream[i]; for(size_t i = 0; i < 6; i++)