From 08b78720bbd283f6e2a5893334628691ab59124d Mon Sep 17 00:00:00 2001 From: treeston Date: Sun, 5 Jun 2016 18:37:48 +0200 Subject: [PATCH] PvP/Dueling: Fix an edge case crash that could happen if a duel ended while an aura effect was being removed (Living Bomb, Unstable Affliction and similar). Closes #17177. --- src/server/game/Entities/Player/Player.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 56320fb080..2b7adf4bb6 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -7581,7 +7581,7 @@ void Player::DuelComplete(DuelCompleteType type) for (AuraApplicationMap::iterator i = itsAuras.begin(); i != itsAuras.end();) { Aura const* aura = i->second->GetBase(); - if (!i->second->IsPositive() && aura->GetCasterGUID() == GetGUID() && aura->GetApplyTime() >= duel->startTime) + if (!i->second->GetRemoveMode() && !i->second->IsPositive() && aura->GetCasterGUID() == GetGUID() && aura->GetApplyTime() >= duel->startTime) duel->opponent->RemoveAura(i); else ++i; @@ -7591,7 +7591,7 @@ void Player::DuelComplete(DuelCompleteType type) for (AuraApplicationMap::iterator i = myAuras.begin(); i != myAuras.end();) { Aura const* aura = i->second->GetBase(); - if (!i->second->IsPositive() && aura->GetCasterGUID() == duel->opponent->GetGUID() && aura->GetApplyTime() >= duel->startTime) + if (!i->second->GetRemoveMode() && !i->second->IsPositive() && aura->GetCasterGUID() == duel->opponent->GetGUID() && aura->GetApplyTime() >= duel->startTime) RemoveAura(i); else ++i;