From 032b788fb0a2cfb1b2b0840b26dda9f991fd1f36 Mon Sep 17 00:00:00 2001
From: Rye Mutt <rye@alchemyviewer.org>
Date: Tue, 7 Mar 2023 00:23:15 -0500
Subject: [PATCH] Fix heap corruption

---
 indra/llappearance/lltexlayer.cpp  |  2 +-
 indra/newview/lldrawpoolavatar.cpp | 10 +---------
 indra/newview/pipeline.cpp         |  7 ++++---
 3 files changed, 6 insertions(+), 13 deletions(-)

diff --git a/indra/llappearance/lltexlayer.cpp b/indra/llappearance/lltexlayer.cpp
index 0d6dc81a161..813086d5ac8 100644
--- a/indra/llappearance/lltexlayer.cpp
+++ b/indra/llappearance/lltexlayer.cpp
@@ -991,7 +991,7 @@ LLTexLayer::~LLTexLayer()
 	for (auto& iter : mAlphaCache)
     {
 		U8* alpha_data = iter.second;
-		delete [] alpha_data;
+		ll_aligned_free_32(alpha_data);
 	}
 
 }
diff --git a/indra/newview/lldrawpoolavatar.cpp b/indra/newview/lldrawpoolavatar.cpp
index 8c5ef5aefbf..d0963150206 100644
--- a/indra/newview/lldrawpoolavatar.cpp
+++ b/indra/newview/lldrawpoolavatar.cpp
@@ -230,15 +230,7 @@ void LLDrawPoolAvatar::beginPostDeferredPass(S32 pass)
 
 	sSkipOpaque = TRUE;
 	sShaderLevel = mShaderLevel;
-	//if (LLPipeline::sUnderWaterRender)
-	//{
-	//	sVertexProgram = &gDeferredAvatarAlphaWaterProgram;
-	//}
-	//else
-	{
-		sVertexProgram = &gDeferredAvatarAlphaProgram;
-	}
-	
+	sVertexProgram = &gDeferredAvatarAlphaProgram;
 	sRenderingSkinned = TRUE;
 
 	gPipeline.bindDeferredShader(*sVertexProgram);
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index 27669e813ed..f90f3fc6391 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -8215,7 +8215,7 @@ void LLPipeline::renderDeferredLighting()
 
                     LLVector4a sa;
                     sa.splat(s);
-					if (camera->AABBInFrustumNoFarClip(center, sa) == 0)
+                    if (camera->AABBInFrustumNoFarClip(center, sa) == 0)
                     {
                         continue;
                     }
@@ -8242,7 +8242,7 @@ void LLPipeline::renderDeferredLighting()
                             gDeferredLightProgram.uniform1f(LLShaderMgr::LIGHT_FALLOFF, volume->getLightFalloff(DEFERRED_LIGHT_FALLOFF));
                             gGL.syncMatrices();
 
-							mCubeVB->drawRange(LLRender::TRIANGLE_FAN, 0, 7, 8, get_box_fan_indices(camera, center));
+                            mCubeVB->drawRange(LLRender::TRIANGLE_FAN, 0, 7, 8, get_box_fan_indices(camera, center));
                             stop_glerror();
                         }
                     }
@@ -8304,7 +8304,7 @@ void LLPipeline::renderDeferredLighting()
                     gDeferredSpotLightProgram.uniform1f(LLShaderMgr::LIGHT_FALLOFF, volume->getLightFalloff(DEFERRED_LIGHT_FALLOFF));
                     gGL.syncMatrices();
 
-					mCubeVB->drawRange(LLRender::TRIANGLE_FAN, 0, 7, 8, get_box_fan_indices(camera, center));
+                    mCubeVB->drawRange(LLRender::TRIANGLE_FAN, 0, 7, 8, get_box_fan_indices(camera, center));
                 }
                 gDeferredSpotLightProgram.disableTexture(LLShaderMgr::DEFERRED_PROJECTION);
                 unbindDeferredShader(gDeferredSpotLightProgram);
@@ -9312,6 +9312,7 @@ void LLPipeline::generateSunShadow(LLCamera& camera)
 	lightDir.normVec();
 
 	//create light space camera matrix
+	
 	LLVector3 at = lightDir;
 
 	LLVector3 up = camera.getAtAxis();
-- 
GitLab