diff --git a/contrib/openddlparser/code/OpenDDLParser.cpp b/contrib/openddlparser/code/OpenDDLParser.cpp index 2f09d7bec..1e14f5fd0 100644 --- a/contrib/openddlparser/code/OpenDDLParser.cpp +++ b/contrib/openddlparser/code/OpenDDLParser.cpp @@ -583,6 +583,9 @@ char *OpenDDLParser::parsePrimitiveDataType(char *in, char *end, Value::ValueTyp size_t prim_len(0); for (size_t i = 0; i < (size_t) Value::ValueType::ddl_types_max; i++) { prim_len = strlen(Grammar::PrimitiveTypeToken[i]); + if (static_cast(end - in) < prim_len) { + continue; + } if (0 == strncmp(in, Grammar::PrimitiveTypeToken[i], prim_len)) { type = static_cast(i); break;