From 174a6142f4053c78f0276c130f7d653c2d93b37e Mon Sep 17 00:00:00 2001 From: Shauren Date: Sun, 10 Apr 2016 00:08:11 +0200 Subject: Core/Networking: Fixed a crash caused by attempting to connect directly to worldserver by setting portal=worldserver address Closes #16927 --- src/server/game/Server/WorldSocket.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/server/game/Server/WorldSocket.cpp b/src/server/game/Server/WorldSocket.cpp index 3774dc571e2..82acf2b1811 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; -- cgit v1.2.3