aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2014-04-24 10:22:57 +0200
committerShauren <shauren.trinity@gmail.com>2014-04-24 10:22:57 +0200
commitfe99d6ef76f1b4c3e1a5ea0752cfb5c822654a55 (patch)
treeb31fdcea4051040dd01ca8cae6b443082359c622 /src
parentd3b8ab57694c6c9b44b0d621a071aa84d3a935f1 (diff)
Core/Movement: Fixed an exploit allowing players to crash the server by using modified movement packets
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Server/WorldSession.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/server/game/Server/WorldSession.cpp b/src/server/game/Server/WorldSession.cpp
index 58e7ba02f47..89242bada6e 100644
--- a/src/server/game/Server/WorldSession.cpp
+++ b/src/server/game/Server/WorldSession.cpp
@@ -46,6 +46,7 @@
#include "Transport.h"
#include "WardenWin.h"
#include "WardenMac.h"
+#include "MoveSpline.h"
namespace {
@@ -891,6 +892,9 @@ void WorldSession::ReadMovementInfo(WorldPacket &data, MovementInfo* mi)
REMOVE_VIOLATING_FLAGS(mi->HasMovementFlag(MOVEMENTFLAG_CAN_FLY | MOVEMENTFLAG_DISABLE_GRAVITY) && mi->HasMovementFlag(MOVEMENTFLAG_FALLING),
MOVEMENTFLAG_FALLING);
+ REMOVE_VIOLATING_FLAGS(mi->HasMovementFlag(MOVEMENTFLAG_SPLINE_ENABLED) &&
+ (!GetPlayer()->movespline->Initialized() || GetPlayer()->movespline->Finalized()), MOVEMENTFLAG_SPLINE_ENABLED);
+
#undef REMOVE_VIOLATING_FLAGS
}