summaryrefslogtreecommitdiff
path: root/indra/llmessage
diff options
context:
space:
mode:
authorandreykproductengine <andreykproductengine@lindenlab.com>2018-03-07 20:31:29 +0200
committerandreykproductengine <andreykproductengine@lindenlab.com>2018-03-07 20:31:29 +0200
commit69d87dfb630032707ca1a14b8aa7e54218477ead (patch)
tree59b37301a1a717c46ee4322c9ac38d24b05dd5ec /indra/llmessage
parent20d7f6672274e2cb66279d54d340926f58dc6682 (diff)
MAINT-8364 Fix for requestAvatarNameCache_ crash
Diffstat (limited to 'indra/llmessage')
-rw-r--r--indra/llmessage/llavatarnamecache.cpp16
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;