aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjackpoz <giacomopoz@gmail.com>2014-04-04 22:16:14 +0200
committerjackpoz <giacomopoz@gmail.com>2014-04-04 22:16:14 +0200
commitc4f4a023eac7f7e1687dfd3898a75419a4115c45 (patch)
treec9511fe8bc3c4e5848df07603e45b7629e740850 /src
parent65e9691b2318530b2d949c20904ec605b38babed (diff)
Core/Chat: Fix valid chat links being handled as invalid
Fix a case where valid chat links would have been handled as invalid. This happened if these conditions were true: - the link was a profession and the link name started with the same name of the profession, like spell id 61120 in esES locale "Inscripción de la tormenta de maestro" with profession name "Inscripción" - the profession name was the same for more than 1 locale available, like esES and esMX, or enUS and enGB Restore memmove() instead of memcpy() wrongly replaced in 791130f6faf6294d2cb27bec409d7b4ee855243f , it's unsafe to use memcpy() with overlapping memory regions.
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Chat/ChatLink.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/server/game/Chat/ChatLink.cpp b/src/server/game/Chat/ChatLink.cpp
index 66758930f7f..12f4b082a9c 100644
--- a/src/server/game/Chat/ChatLink.cpp
+++ b/src/server/game/Chat/ChatLink.cpp
@@ -314,7 +314,8 @@ bool SpellChatLink::ValidateName(char* buffer, const char* context)
// found the prefix, remove it to perform spellname validation below
// -2 = strlen(": ")
uint32 spellNameLength = strlen(buffer) - skillLineNameLength - 2;
- memcpy(buffer, buffer + skillLineNameLength + 2, spellNameLength + 1);
+ memmove(buffer, buffer + skillLineNameLength + 2, spellNameLength + 1);
+ break;
}
}
}