aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.Inventory.cs20
1 files changed, 19 insertions, 1 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
index 90bce39..cfcd544 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
@@ -1970,8 +1970,17 @@ namespace OpenSim.Region.Framework.Scenes
1970 List<SceneObjectPart> children = new List<SceneObjectPart>(); 1970 List<SceneObjectPart> children = new List<SceneObjectPart>();
1971 SceneObjectPart root = GetSceneObjectPart(parentPrimId); 1971 SceneObjectPart root = GetSceneObjectPart(parentPrimId);
1972 1972
1973 if (Permissions.CanLinkObject(client.AgentId, root.ParentGroup.RootPart.UUID)) 1973 if (root == null)
1974 {
1975 m_log.DebugFormat("[LINK]: Can't find linkset root prim {0{", parentPrimId);
1976 return;
1977 }
1978
1979 if (!Permissions.CanLinkObject(client.AgentId, root.ParentGroup.RootPart.UUID))
1980 {
1981 m_log.DebugFormat("[LINK]: Refusing link. No permissions on root prim");
1974 return; 1982 return;
1983 }
1975 1984
1976 foreach (uint localID in childPrimIds) 1985 foreach (uint localID in childPrimIds)
1977 { 1986 {
@@ -1990,7 +1999,16 @@ namespace OpenSim.Region.Framework.Scenes
1990 // Must be all one owner 1999 // Must be all one owner
1991 // 2000 //
1992 if (owners.Count > 1) 2001 if (owners.Count > 1)
2002 {
2003 m_log.DebugFormat("[LINK]: Refusing link. Too many owners");
2004 return;
2005 }
2006
2007 if (children.Count == 0)
2008 {
2009 m_log.DebugFormat("[LINK]: Refusing link. No permissions to link any of the children");
1993 return; 2010 return;
2011 }
1994 2012
1995 m_sceneGraph.LinkObjects(root, children); 2013 m_sceneGraph.LinkObjects(root, children);
1996 } 2014 }