aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Server/WorldSocket.cpp4
-rw-r--r--src/server/game/Server/WorldSocket.h3
2 files changed, 4 insertions, 3 deletions
diff --git a/src/server/game/Server/WorldSocket.cpp b/src/server/game/Server/WorldSocket.cpp
index f8673e5d5b7..ef92a59a73d 100644
--- a/src/server/game/Server/WorldSocket.cpp
+++ b/src/server/game/Server/WorldSocket.cpp
@@ -119,7 +119,7 @@ bool WorldSocket::ReadHeaderHandler()
EndianConvertReverse(header->size);
EndianConvert(header->cmd);
- if (!header->IsValid())
+ if (!header->IsValidSize() || !header->IsValidOpcode())
{
if (_worldSession)
{
@@ -129,7 +129,7 @@ bool WorldSocket::ReadHeaderHandler()
}
else
TC_LOG_ERROR("network", "WorldSocket::ReadHeaderHandler(): client %s sent malformed packet (size: %hu, cmd: %u)",
- GetRemoteIpAddress().to_string().c_str(), header->size, header->cmd);
+ GetRemoteIpAddress().to_string().c_str(), header->size, header->cmd);
CloseSocket();
return false;
diff --git a/src/server/game/Server/WorldSocket.h b/src/server/game/Server/WorldSocket.h
index d301e239340..3355c3d8cca 100644
--- a/src/server/game/Server/WorldSocket.h
+++ b/src/server/game/Server/WorldSocket.h
@@ -39,7 +39,8 @@ struct ClientPktHeader
uint16 size;
uint32 cmd;
- bool IsValid() const { return size >= 4 && size < 10240 && cmd < NUM_MSG_TYPES; }
+ bool IsValidSize() const { return size >= 4 && size < 10240; }
+ bool IsValidOpcode() const { return cmd < NUM_MSG_TYPES; }
};
#pragma pack(pop)