From ad8bfb3be5c72bf067290778edddf7776f5618f8 Mon Sep 17 00:00:00 2001
From: Rye Mutt <rye@alchemyviewer.org>
Date: Thu, 10 Jun 2021 16:18:51 -0400
Subject: [PATCH] Fix potential crash from undefined behavior

---
 indra/newview/pipeline.cpp | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index eccd6b7b345..05e22c54b7a 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -1858,12 +1858,17 @@ void LLPipeline::removeMutedAVsLights(LLVOAvatar* muted_avatar)
 {
 	LL_RECORD_BLOCK_TIME(FTM_REMOVE_FROM_LIGHT_SET);
 	for (light_set_t::iterator iter = gPipeline.mNearbyLights.begin();
-		 iter != gPipeline.mNearbyLights.end(); iter++)
+		 iter != gPipeline.mNearbyLights.end();)
 	{
 		if (iter->drawable->getVObj()->isAttachment() && iter->drawable->getVObj()->getAvatar() == muted_avatar)
 		{
+			auto cur_iter = iter++;
 			gPipeline.mLights.erase(iter->drawable);
-			gPipeline.mNearbyLights.erase(iter);
+			gPipeline.mNearbyLights.erase(cur_iter);
+		}
+		else
+		{
+			++iter;
 		}
 	}
 }
-- 
GitLab