From 0a2a96efaa20fe5440eb5a2f21ffaddcdcea86d3 Mon Sep 17 00:00:00 2001 From: Shauren Date: Sun, 15 Mar 2020 14:28:29 +0100 Subject: Core/PacketIO: Validate utf8 in every client packet --- src/server/game/Handlers/ChatHandler.cpp | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) (limited to 'src/server/game/Handlers/ChatHandler.cpp') diff --git a/src/server/game/Handlers/ChatHandler.cpp b/src/server/game/Handlers/ChatHandler.cpp index feb93f62039..f7420fcc560 100644 --- a/src/server/game/Handlers/ChatHandler.cpp +++ b/src/server/game/Handlers/ChatHandler.cpp @@ -41,7 +41,6 @@ #include "Util.h" #include "World.h" #include "WorldPacket.h" -#include #include inline bool isNasty(uint8 c) @@ -207,15 +206,15 @@ void WorldSession::HandleMessagechatOpcode(WorldPacket& recvData) case CHAT_MSG_BATTLEGROUND_LEADER: case CHAT_MSG_AFK: case CHAT_MSG_DND: - recvData >> msg; + msg = recvData.ReadCString(lang != LANG_ADDON); break; case CHAT_MSG_WHISPER: recvData >> to; - recvData >> msg; + msg = recvData.ReadCString(lang != LANG_ADDON); break; case CHAT_MSG_CHANNEL: recvData >> channel; - recvData >> msg; + msg = recvData.ReadCString(lang != LANG_ADDON); break; } @@ -259,14 +258,6 @@ void WorldSession::HandleMessagechatOpcode(WorldPacket& recvData) return; } - // validate utf8 - if (!utf8::is_valid(msg.begin(), msg.end())) - { - TC_LOG_ERROR("network", "Player %s (GUID: %u) sent a message containing an invalid UTF8 sequence - blocked", GetPlayer()->GetName().c_str(), - GetPlayer()->GetGUID().GetCounter()); - return; - } - // collapse multiple spaces into one if (sWorld->getBoolConfig(CONFIG_CHAT_FAKE_MESSAGE_PREVENTING)) { -- cgit v1.2.3