diff options
author | Shauren <shauren.trinity@gmail.com> | 2020-03-15 14:28:29 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2020-03-15 14:28:29 +0100 |
commit | 0a2a96efaa20fe5440eb5a2f21ffaddcdcea86d3 (patch) | |
tree | 428510b02b4d5def8f04b2b24fd26793cb2fff45 /src/server/game/Handlers/ChatHandler.cpp | |
parent | 8102fae3d5970072398a1e72d44ab14f9aaab7d3 (diff) |
Core/PacketIO: Validate utf8 in every client packet
Diffstat (limited to 'src/server/game/Handlers/ChatHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/ChatHandler.cpp | 15 |
1 files changed, 3 insertions, 12 deletions
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 <utf8.h> #include <algorithm> 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)) { |