aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Chat
diff options
context:
space:
mode:
authorPeter Keresztes Schmidt <carbenium@outlook.com>2020-08-20 00:46:52 +0200
committerShauren <shauren.trinity@gmail.com>2022-02-03 00:18:48 +0100
commit3c82863c528fa9ea1bd5eb75fa596a99266431b7 (patch)
tree7434bb682d3ff216357055500947c5a1fb8237f6 /src/server/game/Chat
parent3ba767c438f2def1d619eda34c6b843c29ebc518 (diff)
Core/ChatCommands: Check whether a passed numeric enum value is valid (#25285)
(cherry picked from commit 4286e7aa02e777268b25d8a5bcc1ee87f7b16c4d)
Diffstat (limited to 'src/server/game/Chat')
-rw-r--r--src/server/game/Chat/ChatCommands/ChatCommandArgs.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/server/game/Chat/ChatCommands/ChatCommandArgs.h b/src/server/game/Chat/ChatCommands/ChatCommandArgs.h
index e32d6918a79..fa60be0cf86 100644
--- a/src/server/game/Chat/ChatCommands/ChatCommandArgs.h
+++ b/src/server/game/Chat/ChatCommands/ChatCommandArgs.h
@@ -193,7 +193,11 @@ struct ArgInfo<T, std::enable_if_t<std::is_enum_v<T>>>
U uVal = 0;
ret = ArgInfo<U>::TryConsume(uVal, args);
if (ret)
+ {
val = static_cast<T>(uVal);
+ if (!EnumUtils::IsValid(val))
+ return nullptr;
+ }
return ret;
}