]> granicus.if.org Git - icinga2/commitdiff
Log: Ensure not to pass negative values to localtime() 6899/head
authorMichael Friedrich <michael.friedrich@icinga.com>
Wed, 16 Jan 2019 16:27:38 +0000 (17:27 +0100)
committerMichael Friedrich <michael.friedrich@icinga.com>
Wed, 16 Jan 2019 16:27:38 +0000 (17:27 +0100)
refs #6887

lib/icinga/checkable-check.cpp

index e70648d895d3a06b884c47c46d6e45e07a6d615f..f8b1d1ff7eec0eb7b11b71ad34684db7fa758039 100644 (file)
@@ -82,10 +82,11 @@ void Checkable::UpdateNextCheck(const MessageOrigin::Ptr& origin)
        adj = std::min(0.5 + fmod(GetSchedulingOffset(), interval * 5) / 100.0, adj);
 
        double nextCheck = now - adj + interval;
+       double lastCheck = GetLastCheck();
 
        Log(LogDebug, "Checkable")
                << "Update checkable '" << GetName() << "' with check interval '" << GetCheckInterval()
-               << "' from last check time at " << Utility::FormatDateTime("%Y-%m-%d %H:%M:%S %z", GetLastCheck())
+               << "' from last check time at " << Utility::FormatDateTime("%Y-%m-%d %H:%M:%S %z", (lastCheck < 0 ? 0 : lastCheck))
                << " (" << GetLastCheck() << ") to next check time at " << Utility::FormatDateTime("%Y-%m-%d %H:%M:%S %z", nextCheck) << "(" << nextCheck << ").";
 
        SetNextCheck(nextCheck, false, origin);