aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2022-04-08 18:07:59 +0200
committerShauren <shauren.trinity@gmail.com>2022-06-10 16:20:54 +0200
commit88b6d75bcedb6c8ede88715c7c3b23e3eeb682f4 (patch)
tree755e56fc9423429f5f881c3ecfb06bb14e6cf337 /src
parentc8e26e1962395ef14004dd4beb1b3b75e0e6d228 (diff)
Core/PacketIO: Require valid WorldSession for CMSG_KEEP_ALIVE
(cherry picked from commit de4340af37d9af403b42fff7129bb39693a021b6)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Server/WorldSocket.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/server/game/Server/WorldSocket.cpp b/src/server/game/Server/WorldSocket.cpp
index f8a42b65916..35e87c0e86f 100644
--- a/src/server/game/Server/WorldSocket.cpp
+++ b/src/server/game/Server/WorldSocket.cpp
@@ -433,8 +433,12 @@ WorldSocket::ReadDataHandlerResult WorldSocket::ReadDataHandler()
sessionGuard.lock();
LogOpcodeText(opcode, sessionGuard);
if (_worldSession)
+ {
_worldSession->ResetTimeOutTime(true);
- break;
+ return ReadDataHandlerResult::Ok;
+ }
+ TC_LOG_ERROR("network", "WorldSocket::ReadDataHandler: client %s sent CMSG_KEEP_ALIVE without being authenticated", GetRemoteIpAddress().to_string().c_str());
+ return ReadDataHandlerResult::Error;
case CMSG_LOG_DISCONNECT:
LogOpcodeText(opcode, sessionGuard);
packet.rfinish(); // contains uint32 disconnectReason;