aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/VehicleHandler.cpp
diff options
context:
space:
mode:
authorMachiavelli <machiavelli.trinity@gmail.com>2012-03-16 18:15:08 +0100
committerMachiavelli <machiavelli.trinity@gmail.com>2012-03-16 18:15:08 +0100
commit65453620e8b9775507d9d4c895f485e639f16b07 (patch)
treebddf0d8bde0d6725723c76617c7560431ec683fe /src/server/game/Handlers/VehicleHandler.cpp
parentcca93c7a22b13bbfb6da5c895f6aa94091bcbfdc (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.cpp17
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);