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