diff --git a/lib/icinga/apievents.cpp b/lib/icinga/apievents.cpp index aa6ecc3f0..d13276a5a 100644 --- a/lib/icinga/apievents.cpp +++ b/lib/icinga/apievents.cpp @@ -144,16 +144,18 @@ Value ApiEvents::CheckResultAPIHandler(const MessageOrigin& origin, const Dictio Array::Ptr rperf = make_shared(); - ObjectLock olock(vperf); - BOOST_FOREACH(const Value& vp, vperf) { - Value p; + if (vperf) { + ObjectLock olock(vperf); + BOOST_FOREACH(const Value& vp, vperf) { + Value p; - if (vp.IsObjectType()) { - PerfdataValue::Ptr val = make_shared(); - Deserialize(val, vp, true); - rperf->Add(val); - } else - rperf->Add(vp); + if (vp.IsObjectType()) { + PerfdataValue::Ptr val = make_shared(); + Deserialize(val, vp, true); + rperf->Add(val); + } else + rperf->Add(vp); + } } cr->SetPerformanceData(rperf);