Procházet zdrojové kódy

HMP: Fix override during copying position data

- Fix override
- closes https://github.com/assimp/assimp/issues/4235
Kim Kulling před 3 roky
rodič
revize
50b00d33b5
1 změnil soubory, kde provedl 5 přidání a 1 odebrání
  1. 5 1
      code/AssetLib/HMP/HMPLoader.cpp

+ 5 - 1
code/AssetLib/HMP/HMPLoader.cpp

@@ -373,12 +373,16 @@ void HMPImporter::CreateOutputFaceList(unsigned int width, unsigned int height)
     aiVector3D *pcUVOut(pcUVs);
 
     // Build the terrain square
+    const unsigned int upperBound = pcMesh->mNumVertices;
     unsigned int iCurrent = 0;
     for (unsigned int y = 0; y < height - 1; ++y) {
         for (unsigned int x = 0; x < width - 1; ++x, ++pcFaceOut) {
             pcFaceOut->mNumIndices = 4;
             pcFaceOut->mIndices = new unsigned int[4];
-
+            if ((y * width + x + 1) >= upperBound){
+                continue;
+            }
+            ai_assert(upperBound
             *pcVertOut++ = pcMesh->mVertices[y * width + x];
             *pcVertOut++ = pcMesh->mVertices[(y + 1) * width + x];
             *pcVertOut++ = pcMesh->mVertices[(y + 1) * width + x + 1];