From b362788754e74c577e79ba374a9ee9cc87a1b864 Mon Sep 17 00:00:00 2001 From: ariel- Date: Fri, 7 Oct 2016 12:52:01 -0300 Subject: Core/Auras: prevent stack overflow while processing SPELL_EFFECT_ADD_EXTRA_ATTACKS (cherry picked from commit b93ee312fac22bf4828dc1afece644e3bd93cb84) --- src/server/game/Spells/Auras/SpellAuraEffects.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src') diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index 0c12b28a5af..19bc046ce87 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -1224,6 +1224,16 @@ bool AuraEffect::CheckEffectProc(AuraApplication* aurApp, ProcEventInfo& eventIn if (!spellInfo || !(spellInfo->GetSchoolMask() & GetMiscValue())) result = false; break; + case SPELL_AURA_PROC_TRIGGER_SPELL: + case SPELL_AURA_PROC_TRIGGER_SPELL_WITH_VALUE: + { + // Don't proc extra attacks while already processing extra attack spell + uint32 triggerSpellId = GetSpellInfo()->Effects[GetEffIndex()].TriggerSpell; + if (SpellInfo const* triggeredSpellInfo = sSpellMgr->GetSpellInfo(triggerSpellId)) + if (aurApp->GetTarget()->m_extraAttacks && triggeredSpellInfo->HasEffect(SPELL_EFFECT_ADD_EXTRA_ATTACKS)) + result = false; + break; + } default: break; } -- cgit v1.2.3