aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTreeston <treeston.mmoc@gmail.com>2020-10-08 16:45:20 +0200
committerShauren <shauren.trinity@gmail.com>2022-02-28 15:54:08 +0100
commit1feb53939d7c1e452d0ac05489644f291f26d601 (patch)
treecd0277df5973be2486e3218057125ba64d0a2124 /src
parent94a3b3d5418d08d7c7c603136aa8c6fc109c8a3b (diff)
Core/ChatCommands: Fix a potential crash if a custom chat command does not have a specified help string
(cherry picked from commit 3ec98bf2410bb8fa73fe6b386a6e766bef575e97)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Chat/ChatCommands/ChatCommand.cpp7
-rw-r--r--src/server/game/Miscellaneous/Language.h2
2 files changed, 7 insertions, 2 deletions
diff --git a/src/server/game/Chat/ChatCommands/ChatCommand.cpp b/src/server/game/Chat/ChatCommands/ChatCommand.cpp
index 6d1ac20930a..d9c56042ef1 100644
--- a/src/server/game/Chat/ChatCommands/ChatCommand.cpp
+++ b/src/server/game/Chat/ChatCommands/ChatCommand.cpp
@@ -173,8 +173,13 @@ void Trinity::Impl::ChatCommands::ChatCommandNode::SendCommandHelp(ChatHandler&
{
if (std::holds_alternative<TrinityStrings>(_help))
handler.SendSysMessage(std::get<TrinityStrings>(_help));
- else
+ else if (std::holds_alternative<std::string>(_help))
handler.SendSysMessage(std::get<std::string>(_help));
+ else
+ {
+ handler.PSendSysMessage(LANG_CMD_HELP_GENERIC, STRING_VIEW_FMT_ARG(_name));
+ handler.PSendSysMessage(LANG_CMD_NO_HELP_AVAILABLE, STRING_VIEW_FMT_ARG(_name));
+ }
}
bool header = false;
diff --git a/src/server/game/Miscellaneous/Language.h b/src/server/game/Miscellaneous/Language.h
index 993fff7aa79..117a6cc2e29 100644
--- a/src/server/game/Miscellaneous/Language.h
+++ b/src/server/game/Miscellaneous/Language.h
@@ -237,7 +237,7 @@ enum TrinityStrings
LANG_SUBCMD_INVALID = 193,
LANG_CMD_AMBIGUOUS = 194,
LANG_CMD_HELP_GENERIC = 195,
- LANG_CMD_NO_HELP_AVAILABLE = 196, // 3.3.5 RESERVED
+ LANG_CMD_NO_HELP_AVAILABLE = 196,
// Room for more level 1 197-199 not used
// level 2 chat