From 34fd334fcbaa809158676c5d769d69e3bdc4b657 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Fri, 24 Nov 2017 12:15:30 +0100 Subject: [PATCH] Check dereference error --- src/ifcparse/IfcHdf5File.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/ifcparse/IfcHdf5File.cpp b/src/ifcparse/IfcHdf5File.cpp index d1b51035b5..2a84166b37 100644 --- a/src/ifcparse/IfcHdf5File.cpp +++ b/src/ifcparse/IfcHdf5File.cpp @@ -1942,9 +1942,14 @@ public: return inst_name; } else if (dt->getClass() == H5T_REFERENCE) { + + hid_t setid = H5Rdereference(file_.getId(), H5R_DATASET_REGION, data); - hid_t setid = H5Rdereference(file().getId(), H5R_DATASET_REGION, data); - hid_t spaceid = H5Rget_region(file().getId(), H5R_DATASET_REGION, data); + if (setid == -1) { + throw std::runtime_error("Failed to dereference"); + } + + hid_t spaceid = H5Rget_region(file_.getId(), H5R_DATASET_REGION, data); H5::DataSet dset(setid); H5::DataSpace dspace(spaceid);