Core/Spells: Added additional validation to loading spell_linked_spell to prevent infinite loops

Port From (https://github.com/TrinityCore/TrinityCore/commit/badb55bfd97c16fecfb8cd73ba99e39ecb6b622d)
This commit is contained in:
hondacrx
2023-01-23 00:24:27 -05:00
parent 4b86a00d6e
commit 8921432333
4 changed files with 38 additions and 20 deletions
+4 -4
View File
@@ -1238,7 +1238,7 @@ namespace Game.Spells
// apply linked auras
if (apply)
{
var spellTriggered = Global.SpellMgr.GetSpellLinked((int)GetId() + (int)SpellLinkedType.Aura);
var spellTriggered = Global.SpellMgr.GetSpellLinked(SpellLinkedType.Aura, GetId());
if (spellTriggered != null)
{
foreach (var spell in spellTriggered)
@@ -1253,7 +1253,7 @@ namespace Game.Spells
else
{
// remove linked auras
var spellTriggered = Global.SpellMgr.GetSpellLinked(-(int)GetId());
var spellTriggered = Global.SpellMgr.GetSpellLinked(SpellLinkedType.Remove, GetId());
if (spellTriggered != null)
{
foreach (var spell in spellTriggered)
@@ -1266,7 +1266,7 @@ namespace Game.Spells
.SetOriginalCastId(GetCastId()));
}
}
spellTriggered = Global.SpellMgr.GetSpellLinked((int)GetId() + (int)SpellLinkedType.Aura);
spellTriggered = Global.SpellMgr.GetSpellLinked(SpellLinkedType.Aura, GetId());
if (spellTriggered != null)
{
foreach (var id in spellTriggered)
@@ -1282,7 +1282,7 @@ namespace Game.Spells
else if (apply)
{
// modify stack amount of linked auras
var spellTriggered = Global.SpellMgr.GetSpellLinked((int)GetId() + (int)SpellLinkedType.Aura);
var spellTriggered = Global.SpellMgr.GetSpellLinked(SpellLinkedType.Aura, GetId());
if (spellTriggered != null)
{
foreach (var id in spellTriggered)