diff --git a/src/server/game/Server/WorldSocket.cpp b/src/server/game/Server/WorldSocket.cpp index 3774dc571e205..82acf2b18117f 100644 --- a/src/server/game/Server/WorldSocket.cpp +++ b/src/server/game/Server/WorldSocket.cpp @@ -168,9 +168,21 @@ void WorldSocket::InitializeHandler(boost::system::error_code error, std::size_t ByteBuffer buffer(std::move(_packetBuffer)); buffer >> magic; + if (magic != ConnectionInitializeMagic) + { + CloseSocket(); + return; + } + buffer >> length; + if (length > ClientConnectionInitialize.length()) + { + CloseSocket(); + return; + } + std::string initializer = buffer.ReadString(length); - if (magic != ConnectionInitializeMagic || initializer != ClientConnectionInitialize) + if (initializer != ClientConnectionInitialize) { CloseSocket(); return;