From 8b27d9c464d53ff8a598114f00ec79c1e7827fb2 Mon Sep 17 00:00:00 2001 From: Kitzunu <24550914+Kitzunu@users.noreply.github.com> Date: Fri, 17 Mar 2023 10:23:29 +0100 Subject: [PATCH] fix(Core/PacketIO): Require valid WorldSession for CMSG_KEEP_ALIVE (#15426) * cherry-pick commit (https://github.com/TrinityCore/TrinityCore/commit/de4340af37d9af403b42fff7129bb39693a021b6) Co-authored-by: Shauren --- src/server/game/Server/WorldSocket.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/server/game/Server/WorldSocket.cpp b/src/server/game/Server/WorldSocket.cpp index 57a8b54e0..f2ce1d91b 100644 --- a/src/server/game/Server/WorldSocket.cpp +++ b/src/server/game/Server/WorldSocket.cpp @@ -355,8 +355,12 @@ WorldSocket::ReadDataHandlerResult WorldSocket::ReadDataHandler() sessionGuard.lock(); LogOpcodeText(opcode, sessionGuard); if (_worldSession) + { _worldSession->ResetTimeOutTime(true); - return ReadDataHandlerResult::Ok; + return ReadDataHandlerResult::Ok; + } + LOG_ERROR("network", "WorldSocket::ReadDataHandler: client {} sent CMSG_KEEP_ALIVE without being authenticated", GetRemoteIpAddress().to_string()); + return ReadDataHandlerResult::Error; case CMSG_TIME_SYNC_RESP: packetToQueue = new WorldPacket(std::move(packet), GameTime::Now()); break;