diff options
Diffstat (limited to 'indra')
-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()); } |