diff options
author | Shauren <shauren.trinity@gmail.com> | 2023-01-15 13:30:17 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2023-01-15 13:30:17 +0100 |
commit | badb55bfd97c16fecfb8cd73ba99e39ecb6b622d (patch) | |
tree | 63c169c36a9db899cb7c9a58d0235ee518112d9b /src/server/game/Spells/Spell.cpp | |
parent | 7587cff0dcb319f92cba4e3f2c1227b1b1276b64 (diff) |
Core/Spells: Added additional validation to loading spell_linked_spell to prevent infinite loops
Closes #28753
Diffstat (limited to 'src/server/game/Spells/Spell.cpp')
-rw-r--r-- | src/server/game/Spells/Spell.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index d463e785f55..a894a3037e9 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -3205,7 +3205,7 @@ void Spell::DoTriggersOnSpellHit(Unit* unit) // trigger linked auras remove/apply /// @todo remove/cleanup this, as this table is not documented and people are doing stupid things with it - if (std::vector<int32> const* spellTriggered = sSpellMgr->GetSpellLinked(m_spellInfo->Id + SPELL_LINK_HIT)) + if (std::vector<int32> const* spellTriggered = sSpellMgr->GetSpellLinked(SPELL_LINK_HIT, m_spellInfo->Id)) { for (std::vector<int32>::const_iterator i = spellTriggered->begin(); i != spellTriggered->end(); ++i) { @@ -3746,7 +3746,7 @@ void Spell::_cast(bool skipCheck) CallScriptAfterCastHandlers(); - if (std::vector<int32> const* spell_triggered = sSpellMgr->GetSpellLinked(m_spellInfo->Id)) + if (std::vector<int32> const* spell_triggered = sSpellMgr->GetSpellLinked(SPELL_LINK_CAST, m_spellInfo->Id)) { for (int32 id : *spell_triggered) { |