diff options
Diffstat (limited to 'src')
| -rwxr-xr-x | src/server/game/Server/WorldSession.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/server/game/Server/WorldSession.cpp b/src/server/game/Server/WorldSession.cpp index d3c23c6e5c3..7a00d92a71c 100755 --- a/src/server/game/Server/WorldSession.cpp +++ b/src/server/game/Server/WorldSession.cpp @@ -754,6 +754,12 @@ void WorldSession::ReadMovementInfo(WorldPacket &data, MovementInfo *mi) if (mi->HasMovementFlag(MOVEMENTFLAG_SPLINE_ELEVATION)) data >> mi->splineElevation; + + // This must be a packet spoofing attempt. MOVEMENTFLAG_ROOT sent from the client is not valid, + // and when used in conjunction with any of the moving movement flags such as MOVEMENTFLAG_FORWARD + // it will freeze clients that receive this player's movement info. + if (mi->HasMovementFlag(MOVEMENTFLAG_ROOT)) + mi->flags &= ~MOVEMENTFLAG_ROOT; } void WorldSession::WriteMovementInfo(WorldPacket *data, MovementInfo *mi) |
