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 a430bc4..e031ebc 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
@@ -2603,8 +2603,17 @@ namespace OpenSim.Region.Framework.Scenes
2603 List<SceneObjectPart> children = new List<SceneObjectPart>(); 2603 List<SceneObjectPart> children = new List<SceneObjectPart>();
2604 SceneObjectPart root = GetSceneObjectPart(parentPrimId); 2604 SceneObjectPart root = GetSceneObjectPart(parentPrimId);
2605 2605
2606 if (Permissions.CanLinkObject(client.AgentId, root.ParentGroup.RootPart.UUID)) 2606 if (root == null)
2607 {
2608 m_log.DebugFormat("[LINK]: Can't find linkset root prim {0{", parentPrimId);
2609 return;
2610 }
2611
2612 if (!Permissions.CanLinkObject(client.AgentId, root.ParentGroup.RootPart.UUID))
2613 {
2614 m_log.DebugFormat("[LINK]: Refusing link. No permissions on root prim");
2607 return; 2615 return;
2616 }
2608 2617
2609 foreach (uint localID in childPrimIds) 2618 foreach (uint localID in childPrimIds)
2610 { 2619 {
@@ -2623,7 +2632,16 @@ namespace OpenSim.Region.Framework.Scenes
2623 // Must be all one owner 2632 // Must be all one owner
2624 // 2633 //
2625 if (owners.Count > 1) 2634 if (owners.Count > 1)
2635 {
2636 m_log.DebugFormat("[LINK]: Refusing link. Too many owners");
2637 return;
2638 }
2639
2640 if (children.Count == 0)
2641 {
2642 m_log.DebugFormat("[LINK]: Refusing link. No permissions to link any of the children");
2626 return; 2643 return;
2644 }
2627 2645
2628 m_sceneGraph.LinkObjects(root, children); 2646 m_sceneGraph.LinkObjects(root, children);
2629 } 2647 }