From 03fa9c5c467e36bd1394000b6892ba6ede1970b8 Mon Sep 17 00:00:00 2001 From: "seer-by-sentry[bot]" <157164994+seer-by-sentry[bot]@users.noreply.github.com> Date: Fri, 20 Feb 2026 23:31:46 +0000 Subject: [PATCH] Fix: Null reference in friend request removal and await async helper --- .../Controllers/Friends/SocialController.cs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/GenOnlineService/Controllers/Friends/SocialController.cs b/GenOnlineService/Controllers/Friends/SocialController.cs index b7edf12..0859d9e 100644 --- a/GenOnlineService/Controllers/Friends/SocialController.cs +++ b/GenOnlineService/Controllers/Friends/SocialController.cs @@ -83,6 +83,13 @@ private async Task HelperFunction_AcceptFriendRequest(Int64 source_user_id, Int6 UserSession? targetData = WebSocketManager.GetDataFromUser(target_user_id); // remove the request from requestor (online version) + // If source user is not online, we cannot proceed + if (sourceData == null) + { + return; + } + + #pragma warning disable CS8602 // Dereference of a possibly null reference. sourceData.GetSocialContainer().PendingRequests.Remove(target_user_id); #pragma warning restore CS8602 // Dereference of a possibly null reference. @@ -147,7 +154,7 @@ public async Task AcceptPendingRequest(Int64 target_user_id) return; } - HelperFunction_AcceptFriendRequest(source_user_id, target_user_id); + await HelperFunction_AcceptFriendRequest(source_user_id, target_user_id); UserSession? sourceSession = WebSocketManager.GetDataFromUser(source_user_id); if (sourceSession != null) @@ -319,7 +326,7 @@ public async Task AddFriend(Int64 target_user_id) if (userData.GetSocialContainer().PendingRequests.Contains(target_user_id)) { // accept their request - HelperFunction_AcceptFriendRequest(requester_user_id, target_user_id); + await HelperFunction_AcceptFriendRequest(requester_user_id, target_user_id); } else { @@ -628,4 +635,4 @@ public async Task Remove_Block(Int64 target_user_id) } } } -} +}