From 0e70165bc9403395f57c453a05a40ae3f7bbf4d3 Mon Sep 17 00:00:00 2001 From: Jean Flach Date: Mon, 25 Apr 2016 16:52:09 +0200 Subject: [PATCH] Fix external commands comments crashing icinga Now an exception will be thrown when AddSvcComment or AddHostComment are run with and empty Author or comment fixes #11112 --- lib/icinga/externalcommandprocessor.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/icinga/externalcommandprocessor.cpp b/lib/icinga/externalcommandprocessor.cpp index b9f0479c2..2bb225828 100644 --- a/lib/icinga/externalcommandprocessor.cpp +++ b/lib/icinga/externalcommandprocessor.cpp @@ -1228,6 +1228,9 @@ void ExternalCommandProcessor::AddHostComment(double, const std::vector& if (!host) BOOST_THROW_EXCEPTION(std::invalid_argument("Cannot add host comment for non-existent host '" + arguments[0] + "'")); + if (arguments[2].IsEmpty() || arguments[3].IsEmpty()) + BOOST_THROW_EXCEPTION(std::invalid_argument("Author and comment may not be empty")); + Log(LogNotice, "ExternalCommandProcessor") << "Creating comment for host " << host->GetName(); (void) Comment::AddComment(host, CommentUser, arguments[2], arguments[3], 0); @@ -1249,6 +1252,9 @@ void ExternalCommandProcessor::AddSvcComment(double, const std::vector& if (!service) BOOST_THROW_EXCEPTION(std::invalid_argument("Cannot add service comment for non-existent service '" + arguments[1] + "' on host '" + arguments[0] + "'")); + if (arguments[3].IsEmpty() || arguments[4].IsEmpty()) + BOOST_THROW_EXCEPTION(std::invalid_argument("Author and comment may not be empty")); + Log(LogNotice, "ExternalCommandProcessor") << "Creating comment for service " << service->GetName(); (void) Comment::AddComment(service, CommentUser, arguments[3], arguments[4], 0);