summaryrefslogtreecommitdiff
path: root/indra/llcommon/llerror.cpp
diff options
context:
space:
mode:
authormaxim_productengine <mnikolenko@productengine.com>2018-08-17 16:14:03 +0300
committermaxim_productengine <mnikolenko@productengine.com>2018-08-17 16:14:03 +0300
commit7aaaabdea7858fcae36808569aa4a574ad8d95ee (patch)
treef5a91d0dcc7317243c62f8d82e998b39c36f1394 /indra/llcommon/llerror.cpp
parent3ee8130bb0e7ae7d0794434a2254086557c2382b (diff)
MAINT-8991 Escape newlines in log entries
Diffstat (limited to 'indra/llcommon/llerror.cpp')
-rw-r--r--indra/llcommon/llerror.cpp29
1 files changed, 28 insertions, 1 deletions
diff --git a/indra/llcommon/llerror.cpp b/indra/llcommon/llerror.cpp
index 29de79dc64..153bfab54c 100644
--- a/indra/llcommon/llerror.cpp
+++ b/indra/llcommon/llerror.cpp
@@ -899,6 +899,33 @@ namespace LLError
namespace
{
+ std::string sanitizeMessage(const std::string& message)
+ {
+ std::string message_new;
+ S32 len = message.length();
+ for (S32 i = 0; i < len; i++)
+ {
+ char c = message[i];
+ if (c == '\\')
+ {
+ message_new += "\\\\";
+ }
+ else if (c == '\n')
+ {
+ message_new += "\\n";
+ }
+ else if (c == '\r')
+ {
+ message_new += "\\r";
+ }
+ else
+ {
+ message_new += c;
+ }
+ }
+ return message_new;
+ }
+
void writeToRecorders(const LLError::CallSite& site, const std::string& message, bool show_location = true, bool show_time = true, bool show_tags = true, bool show_level = true, bool show_function = true)
{
LLError::ELevel level = site.mLevel;
@@ -937,7 +964,7 @@ namespace
message_stream << site.mFunctionString << " ";
}
- message_stream << message;
+ message_stream << sanitizeMessage(message);
r->recordMessage(level, message_stream.str());
}