aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChaouki Dhib <chaodhib@gmail.com>2021-07-04 22:24:03 +0200
committerChaouki Dhib <chaodhib@gmail.com>2021-07-04 22:24:03 +0200
commit7314d5b9925ba16a17f1f575d96e7bce5947facd (patch)
treebc83dbe386e0d8d620828a28aeb3b3d6863d5e38
parentef113ce673455a0bf112741bb6fd7673b71f7863 (diff)
Core/Movement: Fix crash that occurs when ReadMovementInfo is called with mi.guid is not set
-rw-r--r--src/server/game/Handlers/MovementHandler.cpp10
-rw-r--r--src/server/game/Handlers/TaxiHandler.cpp1
-rw-r--r--src/server/game/Handlers/VehicleHandler.cpp1
3 files changed, 12 insertions, 0 deletions
diff --git a/src/server/game/Handlers/MovementHandler.cpp b/src/server/game/Handlers/MovementHandler.cpp
index 3596fef2352..f5ad01e1c3c 100644
--- a/src/server/game/Handlers/MovementHandler.cpp
+++ b/src/server/game/Handlers/MovementHandler.cpp
@@ -699,6 +699,7 @@ void WorldSession::HandleMoveHoverAck(WorldPacket& recvData)
recvData.read_skip<uint32>(); // unk
MovementInfo movementInfo;
+ movementInfo.guid = guid;
ReadMovementInfo(recvData, &movementInfo);
recvData.read_skip<uint32>(); // unk2
@@ -720,6 +721,7 @@ void WorldSession::HandleMoveWaterWalkAck(WorldPacket& recvData)
recvData.read_skip<uint32>(); // unk
MovementInfo movementInfo;
+ movementInfo.guid = guid;
ReadMovementInfo(recvData, &movementInfo);
recvData.read_skip<uint32>(); // unk2
@@ -741,6 +743,7 @@ void WorldSession::HandleMoveRootAck(WorldPacket& recvData)
recvData.read_skip<uint32>(); // unk
MovementInfo movementInfo;
+ movementInfo.guid = guid;
ReadMovementInfo(recvData, &movementInfo);
}
@@ -760,6 +763,7 @@ void WorldSession::HandleFeatherFallAck(WorldPacket& recvData)
recvData.read_skip<uint32>(); // unk
MovementInfo movementInfo;
+ movementInfo.guid = guid;
ReadMovementInfo(recvData, &movementInfo);
recvData.read_skip<uint32>(); // unk2
@@ -781,6 +785,7 @@ void WorldSession::HandleMoveUnRootAck(WorldPacket& recvData)
recvData.read_skip<uint32>(); // unk
MovementInfo movementInfo;
+ movementInfo.guid = guid;
ReadMovementInfo(recvData, &movementInfo);
}
@@ -800,6 +805,7 @@ void WorldSession::HandleMoveSetCanFlyAckOpcode(WorldPacket& recvData)
recvData.read_skip<uint32>(); // unk
MovementInfo movementInfo;
+ movementInfo.guid = guid;
ReadMovementInfo(recvData, &movementInfo);
recvData.read_skip<uint32>(); // unk2
@@ -821,6 +827,7 @@ void WorldSession::HandleMoveSetCanTransitionBetweenSwinAndFlyAck(WorldPacket& r
recvData.read_skip<uint32>(); // unk
MovementInfo movementInfo;
+ movementInfo.guid = guid;
ReadMovementInfo(recvData, &movementInfo);
recvData.read_skip<uint32>(); // unk2
@@ -842,6 +849,7 @@ void WorldSession::HandleMoveGravityDisableAck(WorldPacket& recvData)
recvData.read_skip<uint32>(); // unk
MovementInfo movementInfo;
+ movementInfo.guid = guid;
ReadMovementInfo(recvData, &movementInfo);
}
@@ -861,6 +869,7 @@ void WorldSession::HandleMoveGravityEnableAck(WorldPacket& recvData)
recvData.read_skip<uint32>(); // unk
MovementInfo movementInfo;
+ movementInfo.guid = guid;
ReadMovementInfo(recvData, &movementInfo);
}
@@ -881,6 +890,7 @@ void WorldSession::HandleMoveSetCollisionHgtAck(WorldPacket& recvData)
recvData.read_skip<uint32>(); // movement counter
MovementInfo movementInfo;
+ movementInfo.guid = guid;
ReadMovementInfo(recvData, &movementInfo);
recvData >> newValue;
diff --git a/src/server/game/Handlers/TaxiHandler.cpp b/src/server/game/Handlers/TaxiHandler.cpp
index 0b8754dd978..a2793fa2e98 100644
--- a/src/server/game/Handlers/TaxiHandler.cpp
+++ b/src/server/game/Handlers/TaxiHandler.cpp
@@ -212,6 +212,7 @@ void WorldSession::HandleMoveSplineDoneOpcode(WorldPacket& recvData)
}
MovementInfo movementInfo; // used only for proper packet read
+ movementInfo.guid = guid;
ReadMovementInfo(recvData, &movementInfo);
recvData.read_skip<uint32>(); // spline id
diff --git a/src/server/game/Handlers/VehicleHandler.cpp b/src/server/game/Handlers/VehicleHandler.cpp
index ba3a2605d00..0b27144672e 100644
--- a/src/server/game/Handlers/VehicleHandler.cpp
+++ b/src/server/game/Handlers/VehicleHandler.cpp
@@ -83,6 +83,7 @@ void WorldSession::HandleChangeSeatsOnControlledVehicle(WorldPacket &recvData)
recvData >> guid.ReadAsPacked();
MovementInfo movementInfo;
+ movementInfo.guid = guid;
ReadMovementInfo(recvData, &movementInfo);
vehicle_base->m_movementInfo = movementInfo;