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; }