Safer chat message parsing

This commit is contained in:
Dominion
2023-04-03 12:27:37 -04:00
parent 0c252440d6
commit 2ef30b2290
@@ -316,9 +316,20 @@ namespace Tgstation.Server.Host.Components.Session
if (parameters.ChatMessage.Text == null)
return Error("Missing message field in chatMessage!");
var anyFailed = false;
var parsedChannels = parameters.ChatMessage.ChannelIds.Select(
channelString =>
{
anyFailed |= !UInt64.TryParse(channelString, out var channelId);
return channelId;
});
if (anyFailed)
return Error("Failed to parse channelIds as U64!");
chat.QueueMessage(
parameters.ChatMessage,
parameters.ChatMessage.ChannelIds.Select(UInt64.Parse));
parsedChannels);
break;
case BridgeCommandType.Prime:
var oldPrimeTcs = primeTcs;