浏览代码

Fix OOB read in OpenDDLParser::parseReference (#6317)

Co-authored-by: Kim Kulling <[email protected]>
Kyungjoon Ko 1 月之前
父节点
当前提交
e3f9cf5564
共有 1 个文件被更改,包括 2 次插入2 次删除
  1. 2 2
      contrib/openddlparser/code/OpenDDLParser.cpp

+ 2 - 2
contrib/openddlparser/code/OpenDDLParser.cpp

@@ -630,9 +630,9 @@ char *OpenDDLParser::parseReference(char *in, char *end, std::vector<Name *> &na
     if (nextName) {
         names.push_back(nextName);
     }
-    while (Grammar::CommaSeparator[0] == *in) {
+    while (in != end && Grammar::CommaSeparator[0] == *in) {
         in = getNextSeparator(in, end);
-        if (Grammar::CommaSeparator[0] == *in) {
+        if (in != end && Grammar::CommaSeparator[0] == *in) {
             in = parseName(in, end, &nextName);
             if (nextName) {
                 names.push_back(nextName);