From e83169d715904d4cd79bb8ee12db11018ec3c726 Mon Sep 17 00:00:00 2001 From: Viste Date: Fri, 8 Nov 2019 11:21:34 +0300 Subject: [PATCH] feat(Core/Opcode): simple opcode filter to log non-existing opcode (#2281) --- src/server/game/Server/WorldSession.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/server/game/Server/WorldSession.cpp b/src/server/game/Server/WorldSession.cpp index 0b0098b9b..1efb45993 100644 --- a/src/server/game/Server/WorldSession.cpp +++ b/src/server/game/Server/WorldSession.cpp @@ -269,7 +269,11 @@ bool WorldSession::Update(uint32 diff, PacketFilter& updater) while (m_Socket && !m_Socket->IsClosed() && !_recvQueue.empty() && _recvQueue.peek(true) != firstDelayedPacket && _recvQueue.next(packet, updater)) { - if (packet->GetOpcode() < NUM_MSG_TYPES) + if (packet->GetOpcode() >= NUM_MSG_TYPES) + { + sLog->outError("WorldSession Packet filter: received non-existent opcode %s (0x%.4X)",LookupOpcodeName(packet->GetOpcode()), packet->GetOpcode()); + } + else { OpcodeHandler &opHandle = opcodeTable[packet->GetOpcode()]; try