From: Tayrtahn Date: Fri, 21 Jun 2024 00:17:16 +0000 (-0400) Subject: Fix null exceptions in SurveillanceCameraMonitorSystem (#29275) X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=afc800274caaecf3647db2f04cd0635285eb675b;p=space-station-14.git Fix null exceptions in SurveillanceCameraMonitorSystem (#29275) * Add IsNullOrEmpty checks before indexing KnownSubnets * actor --- diff --git a/Content.Server/SurveillanceCamera/Systems/SurveillanceCameraMonitorSystem.cs b/Content.Server/SurveillanceCamera/Systems/SurveillanceCameraMonitorSystem.cs index ca0f59cd14..f61c57a4a6 100644 --- a/Content.Server/SurveillanceCamera/Systems/SurveillanceCameraMonitorSystem.cs +++ b/Content.Server/SurveillanceCamera/Systems/SurveillanceCameraMonitorSystem.cs @@ -90,7 +90,7 @@ public sealed class SurveillanceCameraMonitorSystem : EntitySystem private void OnSubnetRequest(EntityUid uid, SurveillanceCameraMonitorComponent component, SurveillanceCameraMonitorSubnetRequestMessage args) { - if (args.Actor != null) + if (args.Actor is { Valid: true } actor && !Deleted(actor)) { SetActiveSubnet(uid, args.Subnet, component); } @@ -146,6 +146,7 @@ public sealed class SurveillanceCameraMonitorSystem : EntitySystem break; case SurveillanceCameraSystem.CameraSubnetData: if (args.Data.TryGetValue(SurveillanceCameraSystem.CameraSubnetData, out string? subnet) + && !string.IsNullOrEmpty(subnet) && !component.KnownSubnets.ContainsKey(subnet)) { component.KnownSubnets.Add(subnet, args.SenderAddress); @@ -217,6 +218,7 @@ public sealed class SurveillanceCameraMonitorSystem : EntitySystem { if (!Resolve(uid, ref monitor) || monitor.LastHeartbeatSent < _heartbeatDelay + || string.IsNullOrEmpty(monitor.ActiveSubnet) || !monitor.KnownSubnets.TryGetValue(monitor.ActiveSubnet, out var subnetAddress)) { return; @@ -278,6 +280,7 @@ public sealed class SurveillanceCameraMonitorSystem : EntitySystem SurveillanceCameraMonitorComponent? monitor = null) { if (!Resolve(uid, ref monitor) + || string.IsNullOrEmpty(subnet) || !monitor.KnownSubnets.ContainsKey(subnet)) { return; @@ -295,6 +298,7 @@ public sealed class SurveillanceCameraMonitorSystem : EntitySystem private void RequestActiveSubnetInfo(EntityUid uid, SurveillanceCameraMonitorComponent? monitor = null) { if (!Resolve(uid, ref monitor) + || string.IsNullOrEmpty(monitor.ActiveSubnet) || !monitor.KnownSubnets.TryGetValue(monitor.ActiveSubnet, out var address)) { return; @@ -310,6 +314,7 @@ public sealed class SurveillanceCameraMonitorSystem : EntitySystem private void ConnectToSubnet(EntityUid uid, string subnet, SurveillanceCameraMonitorComponent? monitor = null) { if (!Resolve(uid, ref monitor) + || string.IsNullOrEmpty(subnet) || !monitor.KnownSubnets.TryGetValue(subnet, out var address)) { return; @@ -327,6 +332,7 @@ public sealed class SurveillanceCameraMonitorSystem : EntitySystem private void DisconnectFromSubnet(EntityUid uid, string subnet, SurveillanceCameraMonitorComponent? monitor = null) { if (!Resolve(uid, ref monitor) + || string.IsNullOrEmpty(subnet) || !monitor.KnownSubnets.TryGetValue(subnet, out var address)) { return; @@ -415,6 +421,7 @@ public sealed class SurveillanceCameraMonitorSystem : EntitySystem SurveillanceCameraMonitorComponent? monitor = null) { if (!Resolve(uid, ref monitor) + || string.IsNullOrEmpty(monitor.ActiveSubnet) || !monitor.KnownSubnets.TryGetValue(monitor.ActiveSubnet, out var subnetAddress)) { return;