aboutsummaryrefslogtreecommitdiff
path: root/src/server/game
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2020-03-15 14:28:29 +0100
committerShauren <shauren.trinity@gmail.com>2021-12-23 15:15:08 +0100
commit09967ad7fdd497439aaa1aea053f4bcb3d37b443 (patch)
treebc560f993a72528ce1347fc7753d8838507745b3 /src/server/game
parentbf81c39bbd9e54ff397da9cdce15da92e69037ae (diff)
Core/PacketIO: Validate utf8 in every client packet
(cherry picked from commit 0a2a96efaa20fe5440eb5a2f21ffaddcdcea86d3)
Diffstat (limited to 'src/server/game')
-rw-r--r--src/server/game/Handlers/ChannelHandler.cpp7
-rw-r--r--src/server/game/Handlers/ChatHandler.cpp9
-rw-r--r--src/server/game/Server/Packets/ChatPackets.cpp2
3 files changed, 1 insertions, 17 deletions
diff --git a/src/server/game/Handlers/ChannelHandler.cpp b/src/server/game/Handlers/ChannelHandler.cpp
index 161b5ea784d..3d55008db27 100644
--- a/src/server/game/Handlers/ChannelHandler.cpp
+++ b/src/server/game/Handlers/ChannelHandler.cpp
@@ -24,7 +24,6 @@
#include "ObjectMgr.h" // for normalizePlayerName
#include "Player.h"
#include <cctype>
-#include <utf8.h>
static size_t const MAX_CHANNEL_NAME_STR = 0x31;
static size_t const MAX_CHANNEL_PASS_STR = 31;
@@ -48,12 +47,6 @@ void WorldSession::HandleJoinChannel(WorldPackets::Channel::JoinChannel& packet)
if (packet.ChannelName.empty())
return;
- if (!utf8::is_valid(packet.ChannelName.begin(), packet.ChannelName.end()))
- {
- TC_LOG_ERROR("network", "Player %s tried to create a channel with an invalid UTF8 sequence - blocked", GetPlayer()->GetGUID().ToString().c_str());
- return;
- }
-
if (!ValidateHyperlinksAndMaybeKick(packet.ChannelName))
return;
diff --git a/src/server/game/Handlers/ChatHandler.cpp b/src/server/game/Handlers/ChatHandler.cpp
index bbf607bfe5b..7effd8f9a8c 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)
@@ -73,14 +72,6 @@ inline bool ValidateMessage(Player const* player, std::string& msg)
}
}
- // validate utf8
- if (!utf8::is_valid(msg.begin(), msg.end()))
- {
- TC_LOG_ERROR("network", "Player %s (%s) sent a message containing an invalid UTF8 sequence - blocked", player->GetName().c_str(),
- player->GetGUID().ToString().c_str());
- return false;
- }
-
// collapse multiple spaces into one
if (sWorld->getBoolConfig(CONFIG_CHAT_FAKE_MESSAGE_PREVENTING))
{
diff --git a/src/server/game/Server/Packets/ChatPackets.cpp b/src/server/game/Server/Packets/ChatPackets.cpp
index 41fd5249b11..ed8953d7eff 100644
--- a/src/server/game/Server/Packets/ChatPackets.cpp
+++ b/src/server/game/Server/Packets/ChatPackets.cpp
@@ -55,7 +55,7 @@ ByteBuffer& operator>>(ByteBuffer& data, WorldPackets::Chat::ChatAddonMessagePar
params.IsLogged = data.ReadBit();
params.Type = ChatMsg(data.read<int32>());
params.Prefix = data.ReadString(prefixLen);
- params.Text = data.ReadString(textLen);
+ params.Text = data.ReadString(textLen, false);
return data;
}