summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrey Kleshchev <andreykproductengine@lindenlab.com>2021-06-30 17:34:30 +0300
committerAndrey Kleshchev <andreykproductengine@lindenlab.com>2021-06-30 17:34:39 +0300
commitb15f30a9ce6f7ac7057a9daf7a4072426baf25d9 (patch)
tree65bf3e222c96f1e4d41c07971f9b90de48cb4c07
parent7956f7bfd3343d90db6e6efc127996a3846a6891 (diff)
SL-15501 Viewer crash with unprotected use of std::vector::front()
-rw-r--r--indra/newview/llappearancemgr.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp
index 31b5cf9aaa..fd712ea5d0 100644
--- a/indra/newview/llappearancemgr.cpp
+++ b/indra/newview/llappearancemgr.cpp
@@ -4267,6 +4267,17 @@ public:
}
virtual void done()
{
+ if (mComplete.size() <= 0)
+ {
+ // Ex: timeout
+ LL_WARNS() << "Failed to load data. Removing observer " << LL_ENDL;
+ gInventory.removeObserver(this);
+ doOnIdleOneTime(mCallable);
+
+ delete this;
+ return;
+ }
+
// What we do here is get the complete information on the
// items in the requested category, and set up an observer
// that will wait for that to happen.