diff --git a/Packet++/src/TextBasedProtocol.cpp b/Packet++/src/TextBasedProtocol.cpp index 1d35996384..8dcface42e 100644 --- a/Packet++/src/TextBasedProtocol.cpp +++ b/Packet++/src/TextBasedProtocol.cpp @@ -296,7 +296,13 @@ namespace pcpp } std::string fieldName = fieldToRemove->getFieldName(); - + + if ((fieldToRemove->m_NameOffsetInMessage + fieldToRemove->getFieldSize()) > m_DataLen) + { + PCPP_LOG_ERROR("Field range exceeds message length"); + return false; + } + // shorten layer and delete this field if (!shortenLayer(fieldToRemove->m_NameOffsetInMessage, fieldToRemove->getFieldSize())) {