From 3eca0ad68c58c564ba0bc2417710f1f718b62c52 Mon Sep 17 00:00:00 2001 From: hondacrx Date: Sat, 24 Feb 2024 15:47:25 -0500 Subject: [PATCH] Core/Vehicle: Don't set players movementInfo on vehicle dismiss Port From (https://github.com/TrinityCore/TrinityCore/commit/c52737852d3d94a16f078741f7ccf3afe13eb603) --- Source/Game/Handlers/VehicleHandler.cs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Source/Game/Handlers/VehicleHandler.cs b/Source/Game/Handlers/VehicleHandler.cs index 30cbdeeb0..d9023a855 100644 --- a/Source/Game/Handlers/VehicleHandler.cs +++ b/Source/Game/Handlers/VehicleHandler.cs @@ -12,14 +12,17 @@ namespace Game public partial class WorldSession { [WorldPacketHandler(ClientOpcodes.MoveDismissVehicle, Processing = PacketProcessing.ThreadSafe)] - void HandleMoveDismissVehicle(MoveDismissVehicle packet) + void HandleMoveDismissVehicle(MoveDismissVehicle moveDismissVehicle) { ObjectGuid vehicleGUID = GetPlayer().GetCharmedGUID(); if (vehicleGUID.IsEmpty()) // something wrong here... return; - GetPlayer().ValidateMovementInfo(packet.Status); - GetPlayer().m_movementInfo = packet.Status; + if (moveDismissVehicle.Status.Guid != vehicleGUID) + { + Log.outError(LogFilter.Network, $"Player {GetPlayer().GetGUID()} tried to dismiss a controlled vehicle ({vehicleGUID}) that he has no control over. Possible cheater or malformed packet."); + return; + } GetPlayer().ExitVehicle(); }