diff --git a/indra/newview/lllogchat.cpp b/indra/newview/lllogchat.cpp index 6a23d9acf1..3a8397fa37 100644 --- a/indra/newview/lllogchat.cpp +++ b/indra/newview/lllogchat.cpp @@ -470,7 +470,13 @@ void LLLogChat::loadChatHistory(const std::string& file_name, std::list& m if (is_group) { std::string old_name(file_name); - old_name.erase(old_name.size() - GROUP_CHAT_SUFFIX.size()); + // FIRE-30582: Fix out of range crash + //old_name.erase(old_name.size() - GROUP_CHAT_SUFFIX.size()); + if (LLStringUtil::endsWith(old_name, GROUP_CHAT_SUFFIX)) + { + old_name.erase(old_name.size() - GROUP_CHAT_SUFFIX.size()); + } + // fptr = LLFile::fopen(LLLogChat::makeLogFileName(old_name), "r"); if (fptr) { @@ -1234,7 +1240,13 @@ void LLLoadHistoryThread::loadHistory(const std::string& file_name, std::list FIRE-30582: Fix out of range crash + //old_name.erase(old_name.size() - GROUP_CHAT_SUFFIX.size()); + if (LLStringUtil::endsWith(old_name, GROUP_CHAT_SUFFIX)) + { + old_name.erase(old_name.size() - GROUP_CHAT_SUFFIX.size()); + } + // fptr = LLFile::fopen(LLLogChat::makeLogFileName(old_name), "r"); if (fptr) {