Explorar o código

Merge pull request #5168 from sashashura/4879958521806848

Fix UNKNOWN READ in Assimp::SMDImporter::ParseNodeInfo
Kim Kulling %!s(int64=2) %!d(string=hai) anos
pai
achega
9a94b26cdc
Modificáronse 1 ficheiros con 4 adicións e 1 borrados
  1. 4 1
      code/AssetLib/SMD/SMDLoader.cpp

+ 4 - 1
code/AssetLib/SMD/SMDLoader.cpp

@@ -837,7 +837,10 @@ void SMDImporter::ParseNodeInfo(const char* szCurrent, const char** szCurrentOut
     unsigned int iBone  = 0;
     SkipSpacesAndLineEnd(szCurrent,&szCurrent);
     if ( !ParseUnsignedInt(szCurrent,&szCurrent,iBone) || !SkipSpaces(szCurrent,&szCurrent)) {
-        LogErrorNoThrow("Unexpected EOF/EOL while parsing bone index");
+        throw DeadlyImportError("Unexpected EOF/EOL while parsing bone index");
+    }
+    if (iBone == UINT_MAX) {
+        LogErrorNoThrow("Invalid bone number while parsing bone index");
         SMDI_PARSE_RETURN;
     }
     // add our bone to the list