Browse Source

MDL: Do not try to copy empty embedded texture

- When an embedded texture is empty, skip it instead of trying to copy it. This must fail.
- closes https://github.com/assimp/assimp/issues/4238
- Found from the Google fuzzer.
Kim Kulling 3 years ago
parent
commit
db2500c393
1 changed files with 6 additions and 2 deletions
  1. 6 2
      code/AssetLib/MDL/MDLMaterialLoader.cpp

+ 6 - 2
code/AssetLib/MDL/MDLMaterialLoader.cpp

@@ -463,8 +463,12 @@ void MDLImporter::ParseSkinLump_3DGS_MDL7(
             ASSIMP_LOG_WARN("Found a reference to an embedded DDS texture, "
                             "but texture height is not equal to 1, which is not supported by MED");
         }
-
-        pcNew.reset(new aiTexture());
+        if (iWidth == 0) {
+            ASSIMP_LOG_ERROR("Found a reference to an embedded DDS texture, but texture width is zero, aborting import.");
+            return;
+        }
+        
+        pcNew.reset(new aiTexture);
         pcNew->mHeight = 0;
         pcNew->mWidth = iWidth;