diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index bd451a5472..975bf2dafb 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs @@ -8202,7 +8202,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api else remaining = GetAgentParams((ScenePresence)entity, rules, ref result); - if (remaining == null || remaining.Length <= 2) + if (remaining == null || remaining.Length < 2) return result; int linknumber = remaining.GetLSLIntegerItem(0); @@ -8786,7 +8786,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api case (int)ScriptBaseClass.PRIM_LINK_TARGET: // TODO: Should be issuing a runtime script warning in this case. - if (remain < 3) + if (remain < 2) return null; return rules.GetSublist(idx, -1); diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiObjectTests.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiObjectTests.cs index ff87cc1004..ed61dc0f4d 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiObjectTests.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiObjectTests.cs @@ -100,6 +100,20 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests Assert.That(resList.Length, Is.EqualTo(1)); } + // Check 2 prim case + { + LSL_List resList + = apiGrp1.llGetLinkPrimitiveParams( + 1, + new LSL_List( + new LSL_Integer(ScriptBaseClass.PRIM_ROTATION), + new LSL_Integer(ScriptBaseClass.PRIM_LINK_TARGET), + new LSL_Integer(2), + new LSL_Integer(ScriptBaseClass.PRIM_ROTATION))); + + Assert.That(resList.Length, Is.EqualTo(2)); + } + // Check invalid parameters are ignored { LSL_List resList