aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2023-08-13 23:47:42 +0200
committerShauren <shauren.trinity@gmail.com>2023-08-13 23:47:42 +0200
commitc2d8c64d366899d7f3ab22b5abd79f44640a70e7 (patch)
treee3752984dc9039678b076780a19361c831fe4a4d
parent3c0dcfc2c6bd546b5e81244328a183b4887c79ed (diff)
Core/Spells: Validate spellmod array size at startup
-rw-r--r--src/server/game/Spells/SpellMgr.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp
index d201959cea2..9b09bb4abb3 100644
--- a/src/server/game/Spells/SpellMgr.cpp
+++ b/src/server/game/Spells/SpellMgr.cpp
@@ -2513,6 +2513,18 @@ void SpellMgr::LoadSpellInfoStore()
if (effect->Effect == SPELL_EFFECT_LANGUAGE)
sLanguageMgr->LoadSpellEffectLanguage(effect);
+
+ switch (effect->EffectAura)
+ {
+ case SPELL_AURA_ADD_FLAT_MODIFIER:
+ case SPELL_AURA_ADD_PCT_MODIFIER:
+ case SPELL_AURA_ADD_PCT_MODIFIER_BY_SPELL_LABEL:
+ case SPELL_AURA_ADD_FLAT_MODIFIER_BY_SPELL_LABEL:
+ ASSERT(effect->EffectMiscValue[0] < MAX_SPELLMOD, "MAX_SPELLMOD must be at least %d", effect->EffectMiscValue[0] + 1);
+ break;
+ default:
+ break;
+ }
}
for (SpellAuraOptionsEntry const* auraOptions : sSpellAuraOptionsStore)