diff options
| author | jackpoz <giacomopoz@gmail.com> | 2015-01-07 22:48:34 +0100 |
|---|---|---|
| committer | jackpoz <giacomopoz@gmail.com> | 2015-01-07 22:48:34 +0100 |
| commit | 9ea93eae33dcf776537a41e9c9ff33a31d6e3e19 (patch) | |
| tree | 8677d5f14df5e78ef23cda00012f9659069e19e7 /src/server/game/Entities/Unit | |
| parent | 253dc0f99e8321a126ab32594b2023b176b86705 (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
Diffstat (limited to 'src/server/game/Entities/Unit')
| -rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 6 |
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 daea7fac3fb..6cd67ee4300 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -3587,6 +3587,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); |
