From e72d0161bb086799d445b54e0e73c2dc13e4643a Mon Sep 17 00:00:00 2001
From: Dave Parks <davep@lindenlab.com>
Date: Fri, 28 Oct 2022 11:50:32 -0500
Subject: SL-18493 Fix for assert when setting override before material has
 arrived

---
 indra/newview/llviewerobject.cpp | 7 +++++++
 1 file changed, 7 insertions(+)

(limited to 'indra/newview')

diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp
index 251af1b46e..e3618645e3 100644
--- a/indra/newview/llviewerobject.cpp
+++ b/indra/newview/llviewerobject.cpp
@@ -5361,6 +5361,13 @@ S32 LLViewerObject::setTEGLTFMaterialOverride(U8 te, LLGLTFMaterial* override_ma
 
     LLFetchedGLTFMaterial* src_mat = (LLFetchedGLTFMaterial*) tep->getGLTFMaterial();
 
+    if (!src_mat)
+    { // we can get into this state if an override has arrived before the viewer has
+        // received or handled an update, return TEM_CHANGE_NONE to signal to LLGLTFMaterialList that it
+        // should queue the update for later
+        return retval;
+    }
+
     tep->setGLTFMaterialOverride(override_mat);
 
     // if override mat exists, we must also have a source mat
-- 
cgit v1.2.3