aboutsummaryrefslogtreecommitdiff
path: root/src/server/game
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2021-04-25 14:22:30 +0200
committerShauren <shauren.trinity@gmail.com>2021-04-25 14:22:30 +0200
commitab1a5b7fc8fca3b6540a49c39fc00cb63f16dc6a (patch)
tree5ea9d9551544e28f24962bdce6d31256e92e036e /src/server/game
parent3e407c7d1c79cc94bf932880ee0eb68058d139fd (diff)
Core/Commands: Fixed logging gm commands that accept hyperlink arguments and use legacy handlers
Closes #26462
Diffstat (limited to 'src/server/game')
-rw-r--r--src/server/game/Chat/ChatCommands/ChatCommand.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/server/game/Chat/ChatCommands/ChatCommand.h b/src/server/game/Chat/ChatCommands/ChatCommand.h
index b1c9896909f..9520a7ce7dd 100644
--- a/src/server/game/Chat/ChatCommands/ChatCommand.h
+++ b/src/server/game/Chat/ChatCommands/ChatCommand.h
@@ -147,7 +147,10 @@ namespace Trinity::Impl::ChatCommands
{
_wrapper = [](void* handler, ChatHandler* chatHandler, std::string_view argsStr)
{
- return reinterpret_cast<bool(*)(ChatHandler*, char const*)>(handler)(chatHandler, argsStr.empty() ? "" : argsStr.data());
+ // make a copy of the argument string
+ // legacy handlers can destroy input strings with strtok
+ std::string argsStrCopy(argsStr);
+ return reinterpret_cast<bool(*)(ChatHandler*, char const*)>(handler)(chatHandler, argsStrCopy.c_str());
};
_handler = reinterpret_cast<void*>(handler);
}