mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-24 10:56:38 +01:00
Core/WorldSocket: Refactored client packet header check
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user