Compare commits

...

2 Commits

Author SHA1 Message Date
Francesco Valla 8dd448a0a8
Merge 31d4a750d8 into 30c009fe8f 2025-11-05 09:23:57 +03:00
Francesco Valla 31d4a750d8 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 <francesco.valla@mta.it>
2025-07-04 10:57:28 +02:00
1 changed files with 4 additions and 0 deletions

View File

@ -133,6 +133,10 @@ EthernetPacketizer::EthernetPacket::EthernetPacket(const uint8_t* data, size_t s
int EthernetPacketizer::EthernetPacket::loadBytestream(const std::vector<uint8_t>& bytestream) { int EthernetPacketizer::EthernetPacket::loadBytestream(const std::vector<uint8_t>& bytestream) {
errorWhileDecodingFromBytestream = 0; errorWhileDecodingFromBytestream = 0;
if (bytestream.size() < 24) {
errorWhileDecodingFromBytestream = 1;
return errorWhileDecodingFromBytestream;
}
for(size_t i = 0; i < 6; i++) for(size_t i = 0; i < 6; i++)
destMAC[i] = bytestream[i]; destMAC[i] = bytestream[i];
for(size_t i = 0; i < 6; i++) for(size_t i = 0; i < 6; i++)