From e3091033c08b9bee10baf2bb1c3831dec80e9eff Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Fri, 23 Sep 2022 20:26:56 +0100 Subject: [PATCH] llcreatelink permission must be granted by owner --- .../Shared/Api/Implementation/LSL_Api.cs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index ce721f1626..cc1d0ebee4 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs @@ -4431,11 +4431,18 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public void llCreateLink(LSL_Key target, LSL_Integer parent) { - if ((m_item.PermsMask & ScriptBaseClass.PERMISSION_CHANGE_LINKS) == 0 - && !m_automaticLinkPermission) + if (!m_automaticLinkPermission) { - Error("llCreateLink", "PERMISSION_CHANGE_LINKS permission not set"); - return; + if ((m_item.PermsMask & ScriptBaseClass.PERMISSION_CHANGE_LINKS) == 0) + { + Error("llCreateLink", "PERMISSION_CHANGE_LINKS required"); + return; + } + if (m_item.PermsGranter.NotEqual(m_host.ParentGroup.OwnerID)) + { + Error("llCreateLink", "PERMISSION_CHANGE_LINKS not set by script owner"); + return; + } } CreateLink(target, parent);