From 19c3f47e00e348739eaf31685c8ea804704a08e5 Mon Sep 17 00:00:00 2001
From: andreykproductengine <andreykproductengine@lindenlab.com>
Date: Wed, 31 May 2017 21:24:04 +0300
Subject: [PATCH] MAINT-7325 Fixed issue of images being marked as missing due
 to uninitialized discard level

---
 indra/newview/llviewertexture.cpp | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp
index 6abd6f7b64..c162af371f 100644
--- a/indra/newview/llviewertexture.cpp
+++ b/indra/newview/llviewertexture.cpp
@@ -1462,9 +1462,17 @@ BOOL LLViewerFetchedTexture::createTexture(S32 usename/*= 0*/)
 	}
 
 	bool size_okay = true;
-	
-	U32 raw_width = mRawImage->getWidth() << mRawDiscardLevel;
-	U32 raw_height = mRawImage->getHeight() << mRawDiscardLevel;
+
+	S32 discard_level = mRawDiscardLevel;
+	if (mRawDiscardLevel < 0)
+	{
+		LL_DEBUGS() << "Negative raw discard level when creating image: " << mRawDiscardLevel << LL_ENDL;
+		discard_level = 0;
+	}
+
+	U32 raw_width = mRawImage->getWidth() << discard_level;
+	U32 raw_height = mRawImage->getHeight() << discard_level;
+
 	if( raw_width > MAX_IMAGE_SIZE || raw_height > MAX_IMAGE_SIZE )
 	{
 		LL_INFOS() << "Width or height is greater than " << MAX_IMAGE_SIZE << ": (" << raw_width << "," << raw_height << ")" << LL_ENDL;
-- 
GitLab