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
This commit is contained in:
Jean Flach 2016-04-25 16:52:09 +02:00
parent 93a09b874b
commit 360e0ad548
1 changed files with 6 additions and 0 deletions

View File

@ -1228,6 +1228,9 @@ void ExternalCommandProcessor::AddHostComment(double, const std::vector<String>&
if (!host) if (!host)
BOOST_THROW_EXCEPTION(std::invalid_argument("Cannot add host comment for non-existent host '" + arguments[0] + "'")); 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") Log(LogNotice, "ExternalCommandProcessor")
<< "Creating comment for host " << host->GetName(); << "Creating comment for host " << host->GetName();
(void) Comment::AddComment(host, CommentUser, arguments[2], arguments[3], 0); (void) Comment::AddComment(host, CommentUser, arguments[2], arguments[3], 0);
@ -1249,6 +1252,9 @@ void ExternalCommandProcessor::AddSvcComment(double, const std::vector<String>&
if (!service) if (!service)
BOOST_THROW_EXCEPTION(std::invalid_argument("Cannot add service comment for non-existent service '" + arguments[1] + "' on host '" + arguments[0] + "'")); 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") Log(LogNotice, "ExternalCommandProcessor")
<< "Creating comment for service " << service->GetName(); << "Creating comment for service " << service->GetName();
(void) Comment::AddComment(service, CommentUser, arguments[3], arguments[4], 0); (void) Comment::AddComment(service, CommentUser, arguments[3], arguments[4], 0);