From 779764383b178381dd15010df7a3c2c198479ca6 Mon Sep 17 00:00:00 2001 From: blinkysc <37940565+blinkysc@users.noreply.github.com> Date: Mon, 2 Mar 2026 18:26:52 -0600 Subject: [PATCH] fix(Core/Spells): Fix iterator invalidation crash in deferred spell mod cleanup (#24974) Co-authored-by: blinkysc --- src/server/game/Spells/Spell.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index cc8c0750c..1e6c710c2 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -3992,7 +3992,9 @@ void Spell::_cast(bool skipCheck) handle_immediate(); // Clean up deferred 0-charge spell modifier auras - for (Aura* aura : m_appliedMods) + // Copy to vector first — aura->Remove() can modify m_appliedMods + std::vector appliedModsCopy(m_appliedMods.begin(), m_appliedMods.end()); + for (Aura* aura : appliedModsCopy) { if (!aura->IsRemoved() && aura->IsUsingCharges() && !aura->GetCharges())