diff --git a/src/Message.cpp b/src/Message.cpp index b1dc6999d5322991b20048ae30d9ab918a386980..7ca102efeec33da97226f4941ab5e2e51b438533 100644 --- a/src/Message.cpp +++ b/src/Message.cpp @@ -191,6 +191,8 @@ void Message::appendFixedString(const etl::istring& string) { void Message::appendOctetString(const etl::istring& string) { // Make sure that the string is large enough to count ASSERT_INTERNAL(string.size() <= (std::numeric_limits<uint16_t>::max)(), ErrorHandler::StringTooLarge); + // Redundant check to make sure we fail before appending string.size() + ASSERT_INTERNAL(dataSize + 2 + string.size() < ECSS_MAX_MESSAGE_SIZE, ErrorHandler::MessageTooLarge); appendUint16(string.size()); appendString(string);