]> granicus.if.org Git - icinga2/commitdiff
Fix external commands comments crashing icinga
authorJean Flach <jean-marcel.flach@netways.de>
Mon, 25 Apr 2016 14:52:09 +0000 (16:52 +0200)
committerJean Flach <jean-marcel.flach@netways.de>
Mon, 25 Apr 2016 14:58:00 +0000 (16:58 +0200)
Now an exception will be thrown when AddSvcComment or AddHostComment are
run with and empty Author or comment

fixes #11112

lib/icinga/externalcommandprocessor.cpp

index b9f0479c284cca3537901bb36d5c38eb0e72d4c6..2bb225828c33191b6f18476df2a01864e123c78d 100644 (file)
@@ -1228,6 +1228,9 @@ void ExternalCommandProcessor::AddHostComment(double, const std::vector<String>&
        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<String>&
        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);