diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index 03d79f163d..92738a27e5 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs @@ -90,6 +90,8 @@ namespace OpenSim.Region.Environment.Scenes public float m_maxNonphys = 65536; public float m_maxPhys = 10; public bool m_clampPrimSize = false; + public bool m_trustBinaries = false; + public bool m_allowScriptCrossings = false; public bool m_seeIntoRegionFromNeighbor; public int MaxUndoCount = 5; @@ -337,6 +339,8 @@ namespace OpenSim.Region.Environment.Scenes m_maxNonphys = startupConfig.GetFloat("NonPhysicalPrimMax", 65536.0f); m_maxPhys = startupConfig.GetFloat("PhysicalPrimMax", 10.0f); m_clampPrimSize = startupConfig.GetBoolean("ClampPrimSize", false); + m_trustBinaries = startupConfig.GetBoolean("TrustBinaries", false); + m_allowScriptCrossings = startupConfig.GetBoolean("AllowScriptCrossings", false); m_dontPersistBefore = startupConfig.GetLong("MinimumTimeBeforePersistenceConsidered", DEFAULT_MIN_TIME_FOR_PERSISTENCE); m_dontPersistBefore *= 10000000; diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPartInventory.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPartInventory.cs index 99ac72204e..6ebd675e90 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectPartInventory.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectPartInventory.cs @@ -241,7 +241,8 @@ namespace OpenSim.Region.Environment.Scenes if (!m_part.ParentGroup.Scene.RegionInfo.RegionSettings.DisableScripts) { - if (stateSource == 1) // Prim crossing + if (stateSource == 1 && // Prim crossing + m_part.ParentGroup.Scene.m_trustBinaries) { m_items[item.ItemID].PermsMask = 0; m_items[item.ItemID].PermsGranter = UUID.Zero; diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example index f34cf09b5e..eeb8f04d9b 100644 --- a/bin/OpenSim.ini.example +++ b/bin/OpenSim.ini.example @@ -48,6 +48,13 @@ PhysicalPrimMax = 10 ClampPrimSize = false + ; Region crossing + AllowScriptCrossing = false + ; If you set this to "true", any region that can teleport to you can + ; inject ARBITRARY BINARY CODE into your system. Use at your own risk. + ; YOU HAVE BEEN WARNED!!! + TrustBinaries = false + ; ## ; ## STORAGE ; ##