diff options
author | Chaouki Dhib <chaodhib@gmail.com> | 2021-07-04 22:24:03 +0200 |
---|---|---|
committer | Chaouki Dhib <chaodhib@gmail.com> | 2021-07-04 22:24:03 +0200 |
commit | 7314d5b9925ba16a17f1f575d96e7bce5947facd (patch) | |
tree | bc83dbe386e0d8d620828a28aeb3b3d6863d5e38 | |
parent | ef113ce673455a0bf112741bb6fd7673b71f7863 (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.cpp | 10 | ||||
-rw-r--r-- | src/server/game/Handlers/TaxiHandler.cpp | 1 | ||||
-rw-r--r-- | src/server/game/Handlers/VehicleHandler.cpp | 1 |
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; |