aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorDr Scofield2008-12-03 10:10:01 +0000
committerDr Scofield2008-12-03 10:10:01 +0000
commit59b0ac846c52dc8fb56f37a1d0ab18a7f27ba6aa (patch)
treef3c70e53420fa43cdc242a91127e0d5beadbe9b7
parentReinstate closing the EQ when the UDP circuit disconnects. This will likely (diff)
downloadopensim-SC-59b0ac846c52dc8fb56f37a1d0ab18a7f27ba6aa.zip
opensim-SC-59b0ac846c52dc8fb56f37a1d0ab18a7f27ba6aa.tar.gz
opensim-SC-59b0ac846c52dc8fb56f37a1d0ab18a7f27ba6aa.tar.bz2
opensim-SC-59b0ac846c52dc8fb56f37a1d0ab18a7f27ba6aa.tar.xz
From: Christopher Yeoh <cyeoh@au1.ibm.com>
The attached patch fixes the bug where llCreateLink will cause a null dereference if the avatar who gave link permission for the object is no longer logged in.
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs5
1 files changed, 4 insertions, 1 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index f748522..52e7288 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -3028,7 +3028,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3028 ShoutError("Script trying to link but PERMISSION_CHANGE_LINKS permission not set!"); 3028 ShoutError("Script trying to link but PERMISSION_CHANGE_LINKS permission not set!");
3029 return; 3029 return;
3030 } 3030 }
3031 IClientAPI client = World.GetScenePresence(m_host.TaskInventory[invItemID].PermsGranter).ControllingClient; 3031 IClientAPI client = null;
3032 ScenePresence sp = World.GetScenePresence(m_host.TaskInventory[invItemID].PermsGranter);
3033 if (sp!=null)
3034 client = sp.ControllingClient;
3032 SceneObjectPart targetPart = World.GetSceneObjectPart((UUID)target); 3035 SceneObjectPart targetPart = World.GetSceneObjectPart((UUID)target);
3033 if (targetPart.ParentGroup.RootPart.AttachmentPoint != 0) 3036 if (targetPart.ParentGroup.RootPart.AttachmentPoint != 0)
3034 return; // Fail silently if attached 3037 return; // Fail silently if attached