diff options
| author | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2024-06-21 11:46:09 +0300 | 
|---|---|---|
| committer | Andrey Kleshchev <117672381+akleshchev@users.noreply.github.com> | 2024-06-21 19:31:46 +0300 | 
| commit | 9fb9e8f33cb33a1535f43b4be030009c192ea92b (patch) | |
| tree | 0ec3c9d30ff37a2a729cccf4ef1d44c0d6a81fd4 /indra/newview | |
| parent | e4fd1bd71ef31b34ea92e2b5b5be4e08aad42269 (diff) | |
viewer#1821 Crash at getSessionID()
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/llspeakers.cpp | 10 | 
1 files changed, 7 insertions, 3 deletions
| diff --git a/indra/newview/llspeakers.cpp b/indra/newview/llspeakers.cpp index f468c805d9..81002139be 100644 --- a/indra/newview/llspeakers.cpp +++ b/indra/newview/llspeakers.cpp @@ -288,6 +288,10 @@ LLSpeakerMgr::~LLSpeakerMgr()  LLPointer<LLSpeaker> LLSpeakerMgr::setSpeaker(const LLUUID& id, const std::string& name, LLSpeaker::ESpeakerStatus status, LLSpeaker::ESpeakerType type)  { +    if (!mVoiceChannel) +    { +        return NULL; +    }      LLUUID session_id = getSessionID();      if (id.isNull() || (id == session_id))      { @@ -490,7 +494,7 @@ void LLSpeakerMgr::updateSpeakerList()                             (LLVoiceClient::getInstance()->isParticipantAvatar(*participant_it)?LLSpeaker::SPEAKER_AGENT:LLSpeaker::SPEAKER_EXTERNAL));          }      } -    else +    else if (mVoiceChannel)      {          // If not, check if the list is empty, except if it's Nearby Chat (session_id NULL).          LLUUID session_id = getSessionID(); @@ -816,7 +820,7 @@ void LLIMSpeakerMgr::updateSpeakers(const LLSD& update)  void LLIMSpeakerMgr::toggleAllowTextChat(const LLUUID& speaker_id)  {      LLPointer<LLSpeaker> speakerp = findSpeaker(speaker_id); -    if (!speakerp) return; +    if (!speakerp || !mVoiceChannel) return;      std::string url = gAgent.getRegionCapability("ChatSessionRequest");      LLSD data; @@ -835,7 +839,7 @@ void LLIMSpeakerMgr::toggleAllowTextChat(const LLUUID& speaker_id)  void LLIMSpeakerMgr::moderateVoiceParticipant(const LLUUID& avatar_id, bool unmute)  {      LLPointer<LLSpeaker> speakerp = findSpeaker(avatar_id); -    if (!speakerp) return; +    if (!speakerp || !mVoiceChannel) return;      // *NOTE: mantipov: probably this condition will be incorrect when avatar will be blocked for      // text chat via moderation (LLSpeaker::mModeratorMutedText == true) | 
