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 /indra | |
parent | 20d7f6672274e2cb66279d54d340926f58dc6682 (diff) |
MAINT-8364 Fix for requestAvatarNameCache_ crash
Diffstat (limited to 'indra')
-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; |