Parcourir la source

Fix out of bound access (#5651)

Kim Kulling il y a 1 an
Parent
commit
ddb74c2bbd
1 fichiers modifiés avec 4 ajouts et 0 suppressions
  1. 4 0
      code/AssetLib/Ply/PlyLoader.cpp

+ 4 - 0
code/AssetLib/Ply/PlyLoader.cpp

@@ -564,6 +564,10 @@ void PLYImporter::LoadFace(const PLY::Element *pcElement, const PLY::ElementInst
         if (mGeneratedMesh->mFaces == nullptr) {
         if (mGeneratedMesh->mFaces == nullptr) {
             mGeneratedMesh->mNumFaces = pcElement->NumOccur;
             mGeneratedMesh->mNumFaces = pcElement->NumOccur;
             mGeneratedMesh->mFaces = new aiFace[mGeneratedMesh->mNumFaces];
             mGeneratedMesh->mFaces = new aiFace[mGeneratedMesh->mNumFaces];
+        } else {
+            if (mGeneratedMesh->mNumFaces < pcElement->NumOccur) {
+                throw DeadlyImportError("Invalid .ply file: Too many faces");
+            }
         }
         }
 
 
         if (!bIsTriStrip) {
         if (!bIsTriStrip) {