aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Player
diff options
context:
space:
mode:
authorTreeston <treeston.mmoc@gmail.com>2019-06-23 16:45:32 +0200
committerTreeston <treeston.mmoc@gmail.com>2019-06-23 16:45:32 +0200
commitf4b06fd0b7ead843bba8f5215a09abf7976e012c (patch)
tree615a9dc5a6063fc16f5476ad7a8c6fa86c35420d /src/server/game/Entities/Player
parent396f87c30dff1b50f1eb0d924778a7fbab7e8d11 (diff)
Entities/Unit: Fix an issue where Unit pointers could be left dangling if a channeled Charm was interrupted by a control aura application. Closes #23440.
Diffstat (limited to 'src/server/game/Entities/Player')
-rw-r--r--src/server/game/Entities/Player/Player.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 378cadad747..949607d550d 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -23880,7 +23880,11 @@ void Player::SetClientControl(Unit* target, bool allowMove)
{
// still affected by some aura that shouldn't allow control, only allow on last such aura to be removed
if (allowMove && target->HasUnitState(UNIT_STATE_CANT_CLIENT_CONTROL))
+ {
+ // this should never happen, otherwise m_unitBeingMoved might be left dangling!
+ ASSERT(GetUnitBeingMoved() == target);
return;
+ }
WorldPacket data(SMSG_CLIENT_CONTROL_UPDATE, target->GetPackGUID().size()+1);
data << target->GetPackGUID();