From: Jean Flach Date: Mon, 25 Apr 2016 14:52:09 +0000 (+0200) Subject: Fix external commands comments crashing icinga X-Git-Tag: v2.4.8~31 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0e70165bc9403395f57c453a05a40ae3f7bbf4d3;p=icinga2 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 --- 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);