From e8e23ef03dccd3f990cad775e000b408b8398547 Mon Sep 17 00:00:00 2001 From: Dehravor Date: Thu, 23 Jan 2014 15:29:02 +0100 Subject: Core/Taxi: Fix exploit related to unexplored nodes --- src/server/game/Handlers/TaxiHandler.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src') diff --git a/src/server/game/Handlers/TaxiHandler.cpp b/src/server/game/Handlers/TaxiHandler.cpp index 4487ae7b15f..34899fc23df 100644 --- a/src/server/game/Handlers/TaxiHandler.cpp +++ b/src/server/game/Handlers/TaxiHandler.cpp @@ -184,6 +184,14 @@ void WorldSession::HandleActivateTaxiExpressOpcode (WorldPacket& recvData) { uint32 node; recvData >> node; + + if (!GetPlayer()->m_taxi.IsTaximaskNodeKnown(node) && !GetPlayer()->isTaxiCheater()) + { + SendActivateTaxiReply(ERR_TAXINOTVISITED); + recvData.rfinish(); + return; + } + nodes.push_back(node); } @@ -290,6 +298,15 @@ void WorldSession::HandleActivateTaxiOpcode(WorldPacket& recvData) return; } + if (!GetPlayer()->isTaxiCheater()) + { + if (!GetPlayer()->m_taxi.IsTaximaskNodeKnown(nodes[0]) || !GetPlayer()->m_taxi.IsTaximaskNodeKnown(nodes[1])) + { + SendActivateTaxiReply(ERR_TAXINOTVISITED); + return; + } + } + GetPlayer()->ActivateTaxiPathTo(nodes, npc); } -- cgit v1.2.3