From e6badd83fc90dc463e5321ef892c22545da10bb6 Mon Sep 17 00:00:00 2001 From: megamage Date: Thu, 11 Jun 2009 19:47:58 -0500 Subject: [7992] added additionally check for SPELL_EFFECT_OPEN_LOCK Author: arrai Every gameobject which may be a target of such a spelleffect has to have a lockid. Prior to this commit it was possible to exploit SPELL_EFFECT_OPEN_LOCK spells and despawn abitrary GOs --HG-- branch : trunk --- src/game/Spell.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src') diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index 544161e38e0..fbc4b026a9d 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -4565,7 +4565,11 @@ SpellCastResult Spell::CheckCast(bool strict) // get the lock entry uint32 lockId = 0; if (GameObject* go = m_targets.getGOTarget()) + { lockId = go->GetLockId(); + if (!lockId) + return SPELL_FAILED_BAD_TARGETS; + } else if(Item* itm = m_targets.getItemTarget()) lockId = itm->GetProto()->LockID; -- cgit v1.2.3