diff options
author | Machiavelli <machiavelli.trinity@gmail.com> | 2012-03-16 18:15:08 +0100 |
---|---|---|
committer | Machiavelli <machiavelli.trinity@gmail.com> | 2012-03-16 18:15:08 +0100 |
commit | 65453620e8b9775507d9d4c895f485e639f16b07 (patch) | |
tree | bddf0d8bde0d6725723c76617c7560431ec683fe /src/server/game/Handlers/VehicleHandler.cpp | |
parent | cca93c7a22b13bbfb6da5c895f6aa94091bcbfdc (diff) |
Core/Movement: Do not process server side relocation if reading movementinfo from client resulted in violations (= hacking).
Diffstat (limited to 'src/server/game/Handlers/VehicleHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/VehicleHandler.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/server/game/Handlers/VehicleHandler.cpp b/src/server/game/Handlers/VehicleHandler.cpp index ce4f6ccb8fe..161571998a1 100644 --- a/src/server/game/Handlers/VehicleHandler.cpp +++ b/src/server/game/Handlers/VehicleHandler.cpp @@ -43,6 +43,12 @@ void WorldSession::HandleDismissControlledVehicle(WorldPacket &recv_data) mi.guid = guid; ReadMovementInfo(recv_data, &mi); + if (mi.Violated) + { + recv_data.rfinish(); + return; + } + _player->m_movementInfo = mi; _player->ExitVehicle(); @@ -81,7 +87,16 @@ void WorldSession::HandleChangeSeatsOnControlledVehicle(WorldPacket &recv_data) uint64 guid; // current vehicle guid recv_data.readPackGUID(guid); - ReadMovementInfo(recv_data, &vehicle_base->m_movementInfo); + MovementInfo movementInfo; + ReadMovementInfo(recv_data, &movementInfo); + + if (movementInfo.Violated) + { + recv_data.rfinish(); + return; + } + + vehicle_base->m_movementInfo = movementInfo; uint64 accessory; // accessory guid recv_data.readPackGUID(accessory); |