aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-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 8716e0a..4f2b446 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
@@ -2594,8 +2594,17 @@ namespace OpenSim.Region.Framework.Scenes
2594 List<SceneObjectPart> children = new List<SceneObjectPart>(); 2594 List<SceneObjectPart> children = new List<SceneObjectPart>();
2595 SceneObjectPart root = GetSceneObjectPart(parentPrimId); 2595 SceneObjectPart root = GetSceneObjectPart(parentPrimId);
2596 2596
2597 if (Permissions.CanLinkObject(client.AgentId, root.ParentGroup.RootPart.UUID)) 2597 if (root == null)
2598 {
2599 m_log.DebugFormat("[LINK]: Can't find linkset root prim {0{", parentPrimId);
2600 return;
2601 }
2602
2603 if (!Permissions.CanLinkObject(client.AgentId, root.ParentGroup.RootPart.UUID))
2604 {
2605 m_log.DebugFormat("[LINK]: Refusing link. No permissions on root prim");
2598 return; 2606 return;
2607 }
2599 2608
2600 foreach (uint localID in childPrimIds) 2609 foreach (uint localID in childPrimIds)
2601 { 2610 {
@@ -2614,7 +2623,16 @@ namespace OpenSim.Region.Framework.Scenes
2614 // Must be all one owner 2623 // Must be all one owner
2615 // 2624 //
2616 if (owners.Count > 1) 2625 if (owners.Count > 1)
2626 {
2627 m_log.DebugFormat("[LINK]: Refusing link. Too many owners");
2628 return;
2629 }
2630
2631 if (children.Count == 0)
2632 {
2633 m_log.DebugFormat("[LINK]: Refusing link. No permissions to link any of the children");
2617 return; 2634 return;
2635 }
2618 2636
2619 m_sceneGraph.LinkObjects(root, children); 2637 m_sceneGraph.LinkObjects(root, children);
2620 } 2638 }