From c9c2f76960b62745555f57bf9108f03d41f240aa Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Tue, 5 May 2020 13:07:55 +0200 Subject: [PATCH] parse_xml can return nullptr --- src/ifcconvert/IfcConvert.cpp | 2 +- src/ifcparse/parse_ifcxml.cpp | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/ifcconvert/IfcConvert.cpp b/src/ifcconvert/IfcConvert.cpp index 80f18a452b..17b818a452 100644 --- a/src/ifcconvert/IfcConvert.cpp +++ b/src/ifcconvert/IfcConvert.cpp @@ -948,7 +948,7 @@ bool init_input_file(const std::string& filename, IfcParse::IfcFile*& ifc_file, } else #endif ifc_file = new IfcParse::IfcFile(filename); - if (!ifc_file->good()) { + if (!ifc_file || !ifc_file->good()) { #endif Logger::Error("Unable to parse input file '" + filename + "'"); return false; diff --git a/src/ifcparse/parse_ifcxml.cpp b/src/ifcparse/parse_ifcxml.cpp index 876893148f..00cdc4d712 100644 --- a/src/ifcparse/parse_ifcxml.cpp +++ b/src/ifcparse/parse_ifcxml.cpp @@ -634,8 +634,10 @@ IFC_PARSE_API IfcParse::IfcFile* IfcParse::parse_ifcxml(const std::string& filen } } - state.file->parsing_complete() = true; - state.file->build_inverses(); + if (state.file) { + state.file->parsing_complete() = true; + state.file->build_inverses(); + } return state.file; }