Explorar o código

Merge branch 'master' into dependabot/github_actions/JesseTG/rm-1.0.3

Kim Kulling %!s(int64=3) %!d(string=hai) anos
pai
achega
2ee7727d86
Modificáronse 1 ficheiros con 12 adicións e 2 borrados
  1. 12 2
      code/AssetLib/Q3D/Q3DLoader.cpp

+ 12 - 2
code/AssetLib/Q3D/Q3DLoader.cpp

@@ -129,10 +129,20 @@ void Q3DImporter::InternReadFile(const std::string &pFile,
     unsigned int numTextures = (unsigned int)stream.GetI4();
     unsigned int numTextures = (unsigned int)stream.GetI4();
 
 
     std::vector<Material> materials;
     std::vector<Material> materials;
-    materials.reserve(numMats);
+    try {
+        materials.reserve(numMats);
+    } catch(const std::bad_alloc&) {
+        ASSIMP_LOG_ERROR("Invalid alloc for materials.");
+        throw DeadlyImportError("Invalid Quick3D-file, material allocation failed.");
+    }
 
 
     std::vector<Mesh> meshes;
     std::vector<Mesh> meshes;
-    meshes.reserve(numMeshes);
+    try {
+        meshes.reserve(numMeshes);
+    } catch(const std::bad_alloc&) {
+        ASSIMP_LOG_ERROR("Invalid alloc for meshes.");
+        throw DeadlyImportError("Invalid Quick3D-file, mesh allocation failed.");
+    }
 
 
     // Allocate the scene root node
     // Allocate the scene root node
     pScene->mRootNode = new aiNode();
     pScene->mRootNode = new aiNode();