Bladeren bron

[quick3d] Fix assertion failure when file could not be opened.

Check result of IOSystem::Open before constructing stream.

Partially addresses #3888.
Jason C 4 jaren geleden
bovenliggende
commit
a80b3b25eb
1 gewijzigde bestanden met toevoegingen van 6 en 1 verwijderingen
  1. 6 1
      code/AssetLib/Q3D/Q3DLoader.cpp

+ 6 - 1
code/AssetLib/Q3D/Q3DLoader.cpp

@@ -106,7 +106,12 @@ const aiImporterDesc *Q3DImporter::GetInfo() const {
 // Imports the given file into the given scene structure.
 void Q3DImporter::InternReadFile(const std::string &pFile,
         aiScene *pScene, IOSystem *pIOHandler) {
-    StreamReaderLE stream(pIOHandler->Open(pFile, "rb"));
+
+    auto file = pIOHandler->Open(pFile, "rb");
+    if (!file)
+        throw DeadlyImportError("Quick3D: Could not open ", pFile);
+
+    StreamReaderLE stream(file);
 
     // The header is 22 bytes large
     if (stream.GetRemainingSize() < 22)