diff options
| -rw-r--r-- | indra/llrender/llrender.cpp | 8 | 
1 files changed, 7 insertions, 1 deletions
diff --git a/indra/llrender/llrender.cpp b/indra/llrender/llrender.cpp index 65d6181920..5bcccb35af 100644 --- a/indra/llrender/llrender.cpp +++ b/indra/llrender/llrender.cpp @@ -1458,9 +1458,15 @@ void LLRender::matrixMode(U32 mode)  	if (mode == MM_TEXTURE)  	{  		mode = MM_TEXTURE0 + gGL.getCurrentTexUnitIndex(); +		if (mode > MM_TEXTURE3) +		{ +			// getCurrentTexUnitIndex() can go as high as 32 (LL_NUM_TEXTURE_LAYERS) +			// Large value will result in a crash at mMatrix +			LL_WARNS_ONCE() << "Attempted to assign matrix mode out of bounds: " << mode << LL_ENDL; +			mode = MM_TEXTURE0; +		}  	} -	llassert(mode < NUM_MATRIX_MODES);  	mMatrixMode = mode;  }  | 
