diff options
author | Tor Brede Vekterli <vekterli@yahooinc.com> | 2022-08-30 14:20:59 +0000 |
---|---|---|
committer | Tor Brede Vekterli <vekterli@yahooinc.com> | 2022-09-05 13:09:16 +0000 |
commit | 1f2c465ffa2394951749f8e6920ee7a2d2c2676c (patch) | |
tree | 5e0d139e85383ffc0e121817013cb56da23cfcf7 /storage | |
parent | 7199931744db54650778ae093928bb5400de9def (diff) |
Escape merge command stringification in MergeThrottler status page
Diffstat (limited to 'storage')
-rw-r--r-- | storage/src/vespa/storage/storageserver/mergethrottler.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/storage/src/vespa/storage/storageserver/mergethrottler.cpp b/storage/src/vespa/storage/storageserver/mergethrottler.cpp index 28a76413149..681d97299fa 100644 --- a/storage/src/vespa/storage/storageserver/mergethrottler.cpp +++ b/storage/src/vespa/storage/storageserver/mergethrottler.cpp @@ -11,6 +11,7 @@ #include <vespa/config/helper/configfetcher.hpp> #include <vespa/config/subscription/configuri.h> #include <vespa/vespalib/stllike/asciistream.h> +#include <vespa/vespalib/util/string_escape.h> #include <vespa/vespalib/util/stringfmt.h> #include <cassert> @@ -1313,6 +1314,8 @@ void MergeThrottler::reportHtmlStatus(std::ostream& out, const framework::HttpUrlPath&) const { + using vespalib::xml_content_escaped; + std::lock_guard lock(_stateLock); if (_use_dynamic_throttling) { out << "<p>Dynamic throttle policy; window size min/max: [" @@ -1333,7 +1336,7 @@ MergeThrottler::reportHtmlStatus(std::ostream& out, if (!_merges.empty()) { out << "<ul>\n"; for (auto& m : _merges) { - out << "<li>" << m.second.getMergeCmdString(); + out << "<li>" << xml_content_escaped(m.second.getMergeCmdString()); if (m.second.isExecutingLocally()) { out << " <strong>("; if (m.second.isInCycle()) { @@ -1364,7 +1367,7 @@ MergeThrottler::reportHtmlStatus(std::ostream& out, // The queue always owns its messages, thus this is safe out << "<li>Pri " << static_cast<unsigned int>(qm._msg->getPriority()) - << ": " << *qm._msg; + << ": " << xml_content_escaped(qm._msg->toString()); out << "</li>\n"; } out << "</ol>\n"; |