瀏覽代碼

Avoid reading past EOF when encountering a malformed STL file

Since IsSpaceOrNewLine returns true on '\0' we might try to read past
end of buffer on line 310. Add explicit check to avoid this.
Turo Lamminen 10 年之前
父節點
當前提交
b39446b7bb
共有 1 個文件被更改,包括 1 次插入1 次删除
  1. 1 1
      code/STLLoader.cpp

+ 1 - 1
code/STLLoader.cpp

@@ -279,7 +279,7 @@ void STLImporter::LoadASCIIFile()
             break;
         }
         // facet normal -0.13 -0.13 -0.98
-        if (!strncmp(sz,"facet",5) && IsSpaceOrNewLine(*(sz+5)))    {
+        if (!strncmp(sz,"facet",5) && IsSpaceOrNewLine(*(sz+5)) && *(sz + 5) != '\0')    {
 
             if (3 != curVertex) {
                 DefaultLogger::get()->warn("STL: A new facet begins but the old is not yet complete");