2
0
Эх сурвалжийг харах

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 жил өмнө
parent
commit
b39446b7bb

+ 1 - 1
code/STLLoader.cpp

@@ -279,7 +279,7 @@ void STLImporter::LoadASCIIFile()
             break;
             break;
         }
         }
         // facet normal -0.13 -0.13 -0.98
         // 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) {
             if (3 != curVertex) {
                 DefaultLogger::get()->warn("STL: A new facet begins but the old is not yet complete");
                 DefaultLogger::get()->warn("STL: A new facet begins but the old is not yet complete");