aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Unit
diff options
context:
space:
mode:
authorjackpoz <giacomopoz@gmail.com>2015-01-07 22:48:34 +0100
committerjackpoz <giacomopoz@gmail.com>2015-01-17 17:46:22 +0100
commit6df3f795ba18d2259ce3db925c99608194d3a3d1 (patch)
treea2cebceda67305eee04ec1f32546cc0ca6516438 /src/server/game/Entities/Unit
parentaca47618d21c2de5d84df19c5919fceaa6b4edf5 (diff)
Core/Aura: Replace assert with logged error for invalid AuraRemoveMode
Fix AuraScript::Remove() triggering an assert with default parameter and log an error when Aura is removed with invalid mode AURA_REMOVE_NONE instead of triggering an assert deep down in the call tree. Fix https://github.com/TrinityCore/TrinityCore/issues/714 , triggered by spell 50240 "Evasive Maneuvers" script (cherry picked from commit 9ea93eae33dcf776537a41e9c9ff33a31d6e3e19)
Diffstat (limited to 'src/server/game/Entities/Unit')
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index d20ba57f504..44bc3e281b1 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -3353,6 +3353,12 @@ void Unit::RemoveOwnedAura(Aura* aura, AuraRemoveMode removeMode)
ASSERT(aura->GetOwner() == this);
+ if (removeMode == AURA_REMOVE_NONE)
+ {
+ TC_LOG_ERROR("spells", "Unit::RemoveOwnedAura() called with unallowed removeMode AURA_REMOVE_NONE, spellId %u", aura->GetId());
+ return;
+ }
+
uint32 spellId = aura->GetId();
AuraMapBoundsNonConst range = m_ownedAuras.equal_range(spellId);