From 5fee5b012566191bfd0c27d3fcfc64aad6d657cb Mon Sep 17 00:00:00 2001 From: jackpoz Date: Sat, 7 Jun 2014 22:47:50 +0200 Subject: Core/Banks: Fix some bank exploits Re-implement the cheat checks removed in a12501fb5e6f827d905e0eeba5bc908f8279880a and check if Player can interact with the Banker when handling bank-related opcodes. --- src/server/game/Server/WorldSession.cpp | 3 ++- src/server/game/Server/WorldSession.h | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'src/server/game/Server') diff --git a/src/server/game/Server/WorldSession.cpp b/src/server/game/Server/WorldSession.cpp index eda7b8917a7..a0ff8b98e43 100644 --- a/src/server/game/Server/WorldSession.cpp +++ b/src/server/game/Server/WorldSession.cpp @@ -123,7 +123,8 @@ WorldSession::WorldSession(uint32 id, WorldSocket* sock, AccountTypes sec, uint8 isRecruiter(isARecruiter), _RBACData(NULL), expireTime(60000), // 1 min after socket loss, session is deleted - forceExit(false) + forceExit(false), + m_currentBankerGUID(0) { memset(m_Tutorials, 0, sizeof(m_Tutorials)); diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h index 82125aafd6d..2f5f17952db 100644 --- a/src/server/game/Server/WorldSession.h +++ b/src/server/game/Server/WorldSession.h @@ -975,6 +975,8 @@ class WorldSession // private trade methods void moveItems(Item* myItems[], Item* hisItems[]); + bool CanUseBank(uint64 bankerGUID = 0) const; + // logging helper void LogUnexpectedOpcode(WorldPacket* packet, const char* status, const char *reason); void LogUnprocessedTail(WorldPacket* packet); @@ -1023,6 +1025,7 @@ class WorldSession rbac::RBACData* _RBACData; uint32 expireTime; bool forceExit; + uint64 m_currentBankerGUID; WorldSession(WorldSession const& right) = delete; WorldSession& operator=(WorldSession const& right) = delete; -- cgit v1.2.3