From ae837fb074260dab2752a1408ad565e99d47987b Mon Sep 17 00:00:00 2001 From: hondacrx Date: Thu, 14 Sep 2023 02:49:50 -0400 Subject: [PATCH] Core/Spells: Validate spellmod array size at startup Port From (https://github.com/TrinityCore/TrinityCore/commit/c2d8c64d366899d7f3ab22b5abd79f44640a70e7) --- Source/Game/Spells/SpellManager.cs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Source/Game/Spells/SpellManager.cs b/Source/Game/Spells/SpellManager.cs index 7fc13c40c..bcc835e6f 100644 --- a/Source/Game/Spells/SpellManager.cs +++ b/Source/Game/Spells/SpellManager.cs @@ -2207,6 +2207,18 @@ namespace Game.Entities if (effect.Effect == (int)SpellEffectName.Language) Global.LanguageMgr.LoadSpellEffectLanguage(effect); + + switch ((AuraType)effect.EffectAura) + { + case AuraType.AddFlatModifier: + case AuraType.AddPctModifier: + case AuraType.AddPctModifierBySpellLabel: + case AuraType.AddFlatModifierBySpellLabel: + Cypher.Assert(effect.EffectMiscValue[0] < (int)SpellModOp.Max, $"MAX_SPELLMOD must be at least {effect.EffectMiscValue[0] + 1}"); + break; + default: + break; + } } foreach (SpellAuraOptionsRecord auraOptions in CliDB.SpellAuraOptionsStorage.Values)