From 37cdc407993d3c9aff84bdc84616f0bbc3974552 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=CE=B6eh=20Matt?= <5415177+ZehMatt@users.noreply.github.com> Date: Sat, 11 Nov 2023 18:59:46 +0200 Subject: [PATCH] Fix #20964: Crash when invalid network group id is used --- src/openrct2/network/NetworkBase.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/openrct2/network/NetworkBase.cpp b/src/openrct2/network/NetworkBase.cpp index 2567717efe..46cbcc42ab 100644 --- a/src/openrct2/network/NetworkBase.cpp +++ b/src/openrct2/network/NetworkBase.cpp @@ -2643,7 +2643,10 @@ void NetworkBase::ServerHandleAuth(NetworkConnection& connection, NetworkPacket& if (connection.AuthStatus == NetworkAuth::Verified) { const NetworkGroup* group = GetGroupByID(GetGroupIDByHash(connection.Key.PublicKeyHash())); - passwordless = group->CanPerformAction(NetworkPermission::PasswordlessLogin); + if (group != nullptr) + { + passwordless = group->CanPerformAction(NetworkPermission::PasswordlessLogin); + } } if (gameversion != NetworkGetVersion()) { @@ -3649,6 +3652,11 @@ GameActions::Result NetworkModifyGroups( case ModifyGroupType::SetName: { NetworkGroup* group = network.GetGroupByID(groupId); + if (group == nullptr) + { + return GameActions::Result(GameActions::Status::InvalidParameters, STR_CANT_RENAME_GROUP, STR_NONE); + } + const char* oldName = group->GetName().c_str(); if (strcmp(oldName, name.c_str()) == 0)