From 9417db243fc9db168f5ef5767662738188ed1933 Mon Sep 17 00:00:00 2001 From: Matt Way Date: Sat, 20 Apr 2024 11:31:45 +1000 Subject: [PATCH] Avoid crashing if an incorrect parameter is passed to BufferFiller --- src/BufferFiller.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/BufferFiller.cpp b/src/BufferFiller.cpp index 3e5d78a..a41241e 100644 --- a/src/BufferFiller.cpp +++ b/src/BufferFiller.cpp @@ -75,6 +75,9 @@ bool BufferFiller::fill(uint8_t *buffer, const Packet* packet) { buffer[dataOffset + 2] = 0x00; break; case PacketType::FIELDS: { + if (!std::holds_alternative(packet->parameters)) { + return false; + } FieldsParameters parameters = std::get(packet->parameters); // 0x10 is the number of bytes without any fields setPacketSize(buffer, 0x10 + calculateTotalFieldSize(parameters)); @@ -84,6 +87,9 @@ bool BufferFiller::fill(uint8_t *buffer, const Packet* packet) { break; } case PacketType::FIELD_COMMAND: { + if (!std::holds_alternative(packet->parameters)) { + return false; + } FieldsParameters parameters = std::get(packet->parameters); // 0x10 is the number of bytes without any fields setPacketSize(buffer, 0x10 + calculateTotalFieldSize(parameters));