Переглянути джерело

Fix UNKNOWN READ in Assimp::MDLImporter::ParseSkinLump_3DGS_MDL7

Alex 2 роки тому
батько
коміт
54b0c00418
1 змінених файлів з 4 додано та 0 видалено
  1. 4 0
      code/AssetLib/MDL/MDLMaterialLoader.cpp

+ 4 - 0
code/AssetLib/MDL/MDLMaterialLoader.cpp

@@ -481,6 +481,10 @@ void MDLImporter::ParseSkinLump_3DGS_MDL7(
         pcNew->achFormatHint[2] = 's';
         pcNew->achFormatHint[2] = 's';
         pcNew->achFormatHint[3] = '\0';
         pcNew->achFormatHint[3] = '\0';
 
 
+        if (szCurrent + pcNew->mWidth > this->mBuffer + this->iFileSize) {
+            throw DeadlyImportError("Invalid MDL file. Unexpected EOF");
+        }
+
         pcNew->pcData = (aiTexel *)new unsigned char[pcNew->mWidth];
         pcNew->pcData = (aiTexel *)new unsigned char[pcNew->mWidth];
         memcpy(pcNew->pcData, szCurrent, pcNew->mWidth);
         memcpy(pcNew->pcData, szCurrent, pcNew->mWidth);
         szCurrent += iWidth;
         szCurrent += iWidth;