From 0735966e23fae5db74bd4506f4f6d7396c5b9911 Mon Sep 17 00:00:00 2001 From: "Alexander A. Klimov" Date: Tue, 27 Jun 2023 11:44:14 +0200 Subject: [PATCH] IcingaDB::PrepareObject(): cut off (null) negative Notification#times.{begin,end} not to crash Go daemon At least our PostgreSQL schema enforces positive values. --- lib/icingadb/icingadb-objects.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/icingadb/icingadb-objects.cpp b/lib/icingadb/icingadb-objects.cpp index 3687af752..8b5575af4 100644 --- a/lib/icingadb/icingadb-objects.cpp +++ b/lib/icingadb/icingadb-objects.cpp @@ -1388,11 +1388,11 @@ bool IcingaDB::PrepareObject(const ConfigObject::Ptr& object, Dictionary::Ptr& a auto begin (notification->GetTimes()->Get("begin")); auto end (notification->GetTimes()->Get("end")); - if (begin != Empty) { + if (begin != Empty && (double)begin >= 0) { attributes->Set("times_begin", std::round((double)begin)); } - if (end != Empty) { + if (end != Empty && (double)end >= 0) { attributes->Set("times_end", std::round((double)end)); } }