Check validity of archive without parsing

- closes https://github.com/assimp/assimp/issues/5392
pull/5394/head
Kim Kulling 2023-12-22 09:45:37 +01:00
parent 7b54b0f406
commit 274f64cbf1
1 changed files with 8 additions and 3 deletions

View File

@ -81,12 +81,17 @@ static constexpr aiImporterDesc desc = {
"3mf" "3mf"
}; };
bool D3MFImporter::CanRead(const std::string &filename, IOSystem *pIOHandler, bool /*checkSig*/) const { bool D3MFImporter::CanRead(const std::string &filename, IOSystem *pIOHandler, bool ) const {
if (!ZipArchiveIOSystem::isZipArchive(pIOHandler, filename)) { if (!ZipArchiveIOSystem::isZipArchive(pIOHandler, filename)) {
return false; return false;
} }
D3MF::D3MFOpcPackage opcPackage(pIOHandler, filename);
return opcPackage.validate(); ZipArchiveIOSystem archive(pIOHandler, rFile);
if (!mZipArchive->archive()) {
return false;
}
return true;
} }
void D3MFImporter::SetupProperties(const Importer*) { void D3MFImporter::SetupProperties(const Importer*) {