From 9d390564a9516ee0424dd35308bc4055c2dd0c51 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Wed, 9 Feb 2022 23:08:58 +0000 Subject: [PATCH] avoid a possible null ref; cosmetics --- .../Avatar/Friends/FriendsModule.cs | 9 ++- .../Avatar/Friends/HGFriendsModule.cs | 2 +- .../World/MoneyModule/SampleMoneyModule.cs | 58 +++++++------------ 3 files changed, 28 insertions(+), 41 deletions(-) diff --git a/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs b/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs index f0a15f7fb2..c6ae3fc3ee 100644 --- a/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs @@ -491,7 +491,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends foreach (Scene scene in m_Scenes) { ScenePresence presence = scene.GetScenePresence(agentID); - if (presence != null && !presence.IsChildAgent) + if (presence != null && !presence.IsDeleted && !presence.IsChildAgent) return presence.ControllingClient; } } @@ -627,8 +627,11 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends if (friendSession != null) { GridRegion region = GridService.GetRegionByUUID(m_Scenes[0].RegionInfo.ScopeID, friendSession.RegionID); - m_FriendsSimConnector.FriendshipOffered(region, agentID, friendID, im.message); - return true; + if(region != null) + { + m_FriendsSimConnector.FriendshipOffered(region, agentID, friendID, im.message); + return true; + } } } // If the prospective friend is not online, he'll get the message upon login. diff --git a/OpenSim/Region/CoreModules/Avatar/Friends/HGFriendsModule.cs b/OpenSim/Region/CoreModules/Avatar/Friends/HGFriendsModule.cs index f778b4059c..6a7ed42d1e 100644 --- a/OpenSim/Region/CoreModules/Avatar/Friends/HGFriendsModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Friends/HGFriendsModule.cs @@ -776,7 +776,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends if (!m_uMan.IsLocalGridUser(friendID)) { string friendsURL = m_uMan.GetUserServerURL(friendID, "FriendsServerURI"); - if (friendsURL != string.Empty) + if (!string.IsNullOrEmpty(friendsURL)) { m_log.DebugFormat("[HGFRIENDS MODULE]: Forwading friendship from {0} to {1} @ {2}", agentID, friendID, friendsURL); GridRegion region = new GridRegion(); diff --git a/OpenSim/Region/OptionalModules/World/MoneyModule/SampleMoneyModule.cs b/OpenSim/Region/OptionalModules/World/MoneyModule/SampleMoneyModule.cs index 74e7ac04cc..a130308d22 100644 --- a/OpenSim/Region/OptionalModules/World/MoneyModule/SampleMoneyModule.cs +++ b/OpenSim/Region/OptionalModules/World/MoneyModule/SampleMoneyModule.cs @@ -83,7 +83,7 @@ namespace OpenSim.Region.OptionalModules.World.MoneyModule /// /// Scenes by Region Handle /// - private Dictionary m_scenel = new Dictionary(); + private Dictionary m_scenes = new Dictionary(); // private int m_stipend = 1000; @@ -138,9 +138,9 @@ namespace OpenSim.Region.OptionalModules.World.MoneyModule scene.RegisterModuleInterface(this); IHttpServer httpServer = MainServer.Instance; - lock (m_scenel) + lock (m_scenes) { - if (m_scenel.Count == 0) + if (m_scenes.Count == 0) { m_localEconomyURL = scene.RegionInfo.ServerURI; m_rpcHandlers = new Dictionary(); @@ -154,13 +154,13 @@ namespace OpenSim.Region.OptionalModules.World.MoneyModule MainServer.Instance.AddSimpleStreamHandler(new SimpleStreamHandler("/landtool.php", processPHP)); } - if (m_scenel.ContainsKey(scene.RegionInfo.RegionHandle)) + if (m_scenes.ContainsKey(scene.RegionInfo.RegionHandle)) { - m_scenel[scene.RegionInfo.RegionHandle] = scene; + m_scenes[scene.RegionInfo.RegionHandle] = scene; } else { - m_scenel.Add(scene.RegionInfo.RegionHandle, scene); + m_scenes.Add(scene.RegionInfo.RegionHandle, scene); } } @@ -366,9 +366,9 @@ namespace OpenSim.Region.OptionalModules.World.MoneyModule private SceneObjectPart findPrim(UUID objectID) { - lock (m_scenel) + lock (m_scenes) { - foreach (Scene s in m_scenel.Values) + foreach (Scene s in m_scenes.Values) { SceneObjectPart part = s.GetSceneObjectPart(objectID); if (part != null) @@ -616,25 +616,14 @@ namespace OpenSim.Region.OptionalModules.World.MoneyModule /// private IClientAPI LocateClientObject(UUID AgentID) { - ScenePresence tPresence = null; - IClientAPI rclient = null; - - lock (m_scenel) + ScenePresence tPresence; + lock (m_scenes) { - foreach (Scene _scene in m_scenel.Values) + foreach (Scene _scene in m_scenes.Values) { tPresence = _scene.GetScenePresence(AgentID); - if (tPresence != null) - { - if (!tPresence.IsChildAgent) - { - rclient = tPresence.ControllingClient; - } - } - if (rclient != null) - { - return rclient; - } + if (tPresence != null && !tPresence.IsDeleted && !tPresence.IsChildAgent) + return tPresence.ControllingClient; } } return null; @@ -642,18 +631,13 @@ namespace OpenSim.Region.OptionalModules.World.MoneyModule private Scene LocateSceneClientIn(UUID AgentId) { - lock (m_scenel) + lock (m_scenes) { - foreach (Scene _scene in m_scenel.Values) + foreach (Scene _scene in m_scenes.Values) { ScenePresence tPresence = _scene.GetScenePresence(AgentId); - if (tPresence != null) - { - if (!tPresence.IsChildAgent) - { - return _scene; - } - } + if (tPresence != null && !tPresence.IsDeleted && !tPresence.IsChildAgent) + return _scene; } } return null; @@ -665,9 +649,9 @@ namespace OpenSim.Region.OptionalModules.World.MoneyModule /// public Scene GetRandomScene() { - lock (m_scenel) + lock (m_scenes) { - foreach (Scene rs in m_scenel.Values) + foreach (Scene rs in m_scenes.Values) return rs; } return null; @@ -680,9 +664,9 @@ namespace OpenSim.Region.OptionalModules.World.MoneyModule /// public Scene GetSceneByUUID(UUID RegionID) { - lock (m_scenel) + lock (m_scenes) { - foreach (Scene rs in m_scenel.Values) + foreach (Scene rs in m_scenes.Values) { if (rs.RegionInfo.originRegionID == RegionID) {