diff options
author | Shauren <shauren.trinity@gmail.com> | 2021-04-25 14:22:30 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-03-09 00:42:48 +0100 |
commit | 673f7a53e5c3ae80dc95147fd870389bd8db8315 (patch) | |
tree | 4d4c02397a8aca38dda23f89881709c146e5c63c | |
parent | 8202dc28c2dae613c14a52ef4e84932d8c1c9e39 (diff) |
Core/Commands: Fixed logging gm commands that accept hyperlink arguments and use legacy handlers
Closes #26462
(cherry picked from commit ab1a5b7fc8fca3b6540a49c39fc00cb63f16dc6a)
-rw-r--r-- | src/server/game/Chat/ChatCommands/ChatCommand.h | 5 |
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 80490b5161d..221dc03c35f 100644 --- a/src/server/game/Chat/ChatCommands/ChatCommand.h +++ b/src/server/game/Chat/ChatCommands/ChatCommand.h @@ -146,7 +146,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); } |