diff options
| author | andreykproductengine <andreykproductengine@lindenlab.com> | 2018-03-07 20:31:29 +0200 | 
|---|---|---|
| committer | andreykproductengine <andreykproductengine@lindenlab.com> | 2018-03-07 20:31:29 +0200 | 
| commit | 69d87dfb630032707ca1a14b8aa7e54218477ead (patch) | |
| tree | 59b37301a1a717c46ee4322c9ac38d24b05dd5ec | |
| parent | 20d7f6672274e2cb66279d54d340926f58dc6682 (diff) | |
MAINT-8364 Fix for requestAvatarNameCache_ crash
| -rw-r--r-- | indra/llmessage/llavatarnamecache.cpp | 16 | 
1 files changed, 15 insertions, 1 deletions
diff --git a/indra/llmessage/llavatarnamecache.cpp b/indra/llmessage/llavatarnamecache.cpp index abe0e46e5d..ba1a2a035e 100644 --- a/indra/llmessage/llavatarnamecache.cpp +++ b/indra/llmessage/llavatarnamecache.cpp @@ -192,13 +192,21 @@ void LLAvatarNameCache::requestAvatarNameCache_(std::string url, std::vector<LLU      LL_DEBUGS("AvNameCache") << "Entering coroutine " << LLCoros::instance().getName()          << " with url '" << url << "', requesting " << agentIds.size() << " Agent Ids" << LL_ENDL; +    // Check pointer that can be cleaned up by cleanupClass() +    if (!sHttpRequest || !sHttpOptions || !sHttpHeaders) +    { +        LL_WARNS("AvNameCache") << " Trying to request name cache when http pointers are not initialized." << LL_ENDL; +        return; +    } + +    LLSD httpResults; +      try      {          bool success = true;          LLCoreHttpUtil::HttpCoroutineAdapter httpAdapter("NameCache", LLAvatarNameCache::sHttpPolicy);          LLSD results = httpAdapter.getAndSuspend(sHttpRequest, url); -        LLSD httpResults;          LL_DEBUGS() << results << LL_ENDL; @@ -237,6 +245,7 @@ void LLAvatarNameCache::requestAvatarNameCache_(std::string url, std::vector<LLU      {          LOG_UNHANDLED_EXCEPTION(STRINGIZE("coroutine " << LLCoros::instance().getName()                                            << "('" << url << "', " << agentIds.size() +                                          << " http result: " << httpResults.asString()                                            << " Agent Ids)"));          throw;      } @@ -326,6 +335,11 @@ void LLAvatarNameCache::handleAgentError(const LLUUID& agent_id)  void LLAvatarNameCache::processName(const LLUUID& agent_id, const LLAvatarName& av_name)  { +	if (agent_id.isNull()) +	{ +		return; +	} +  	// Add to the cache  	sCache[agent_id] = av_name;  | 
