diff options
author | maxim_productengine <mnikolenko@productengine.com> | 2018-08-17 16:14:03 +0300 |
---|---|---|
committer | maxim_productengine <mnikolenko@productengine.com> | 2018-08-17 16:14:03 +0300 |
commit | 7aaaabdea7858fcae36808569aa4a574ad8d95ee (patch) | |
tree | f5a91d0dcc7317243c62f8d82e998b39c36f1394 /indra/llcommon/llerror.cpp | |
parent | 3ee8130bb0e7ae7d0794434a2254086557c2382b (diff) |
MAINT-8991 Escape newlines in log entries
Diffstat (limited to 'indra/llcommon/llerror.cpp')
-rw-r--r-- | indra/llcommon/llerror.cpp | 29 |
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()); } |