diff options
-rw-r--r-- | OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | 15 | ||||
-rw-r--r-- | bin/OpenSim.ini.example | 10 |
2 files changed, 20 insertions, 5 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index 1ede395..f809ef2 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -82,6 +82,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
82 | private bool m_waitingForScriptAnswer=false; | 82 | private bool m_waitingForScriptAnswer=false; |
83 | private bool m_automaticLinkPermission=false; | 83 | private bool m_automaticLinkPermission=false; |
84 | private IMessageTransferModule m_TransferModule = null; | 84 | private IMessageTransferModule m_TransferModule = null; |
85 | private int m_notecardLineReadCharsMax = 255; | ||
85 | 86 | ||
86 | //private static readonly ILog m_log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | 87 | //private static readonly ILog m_log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); |
87 | 88 | ||
@@ -100,6 +101,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
100 | m_ScriptEngine.Config.GetFloat("MinTimerInterval", 0.5f); | 101 | m_ScriptEngine.Config.GetFloat("MinTimerInterval", 0.5f); |
101 | m_automaticLinkPermission = | 102 | m_automaticLinkPermission = |
102 | m_ScriptEngine.Config.GetBoolean("AutomaticLinkPermission", false); | 103 | m_ScriptEngine.Config.GetBoolean("AutomaticLinkPermission", false); |
104 | m_notecardLineReadCharsMax = | ||
105 | m_ScriptEngine.Config.GetInt("NotecardLineReadCharsMax", 255); | ||
106 | if (m_notecardLineReadCharsMax > 65535) | ||
107 | m_notecardLineReadCharsMax = 65535; | ||
103 | 108 | ||
104 | m_TransferModule = | 109 | m_TransferModule = |
105 | m_ScriptEngine.World.RequestModuleInterface<IMessageTransferModule>(); | 110 | m_ScriptEngine.World.RequestModuleInterface<IMessageTransferModule>(); |
@@ -9133,7 +9138,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
9133 | { | 9138 | { |
9134 | AsyncCommands. | 9139 | AsyncCommands. |
9135 | DataserverPlugin.DataserverReply(item.AssetID.ToString(), | 9140 | DataserverPlugin.DataserverReply(item.AssetID.ToString(), |
9136 | NotecardCache.GetLine(item.AssetID, line)); | 9141 | NotecardCache.GetLine(item.AssetID, line, m_notecardLineReadCharsMax)); |
9137 | // ScriptSleep(100); | 9142 | // ScriptSleep(100); |
9138 | return tid.ToString(); | 9143 | return tid.ToString(); |
9139 | } | 9144 | } |
@@ -9147,7 +9152,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
9147 | NotecardCache.Cache(id, data); | 9152 | NotecardCache.Cache(id, data); |
9148 | AsyncCommands. | 9153 | AsyncCommands. |
9149 | DataserverPlugin.DataserverReply(id.ToString(), | 9154 | DataserverPlugin.DataserverReply(id.ToString(), |
9150 | NotecardCache.GetLine(id, line)); | 9155 | NotecardCache.GetLine(id, line, m_notecardLineReadCharsMax)); |
9151 | }); | 9156 | }); |
9152 | 9157 | ||
9153 | // ScriptSleep(100); | 9158 | // ScriptSleep(100); |
@@ -9291,7 +9296,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
9291 | } | 9296 | } |
9292 | } | 9297 | } |
9293 | 9298 | ||
9294 | public static string GetLine(UUID assetID, int line) | 9299 | public static string GetLine(UUID assetID, int line, int maxLength) |
9295 | { | 9300 | { |
9296 | if (line < 0) | 9301 | if (line < 0) |
9297 | return ""; | 9302 | return ""; |
@@ -9309,8 +9314,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
9309 | return "\n\n\n"; | 9314 | return "\n\n\n"; |
9310 | 9315 | ||
9311 | data = m_Notecards[assetID].text[line]; | 9316 | data = m_Notecards[assetID].text[line]; |
9312 | if (data.Length > 255) | 9317 | if (data.Length > maxLength) |
9313 | data = data.Substring(0, 255); | 9318 | data = data.Substring(0, maxLength); |
9314 | 9319 | ||
9315 | return data; | 9320 | return data; |
9316 | } | 9321 | } |
diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example index e2ae33c..39fee58 100644 --- a/bin/OpenSim.ini.example +++ b/bin/OpenSim.ini.example | |||
@@ -693,6 +693,11 @@ InterregionComms = "RESTComms" | |||
693 | ScriptDelayFactor = 1.0 | 693 | ScriptDelayFactor = 1.0 |
694 | ScriptDistanceLimitFactor = 1.0 | 694 | ScriptDistanceLimitFactor = 1.0 |
695 | 695 | ||
696 | ; Maximum length of notecard line read | ||
697 | ; Increasing this to large values potentially opens | ||
698 | ; up the system to malicious scripters | ||
699 | ; NotecardLineReadCharsMax = 255 | ||
700 | |||
696 | ; | 701 | ; |
697 | ; These settings are specific to DotNetEngine script engine | 702 | ; These settings are specific to DotNetEngine script engine |
698 | ; Other script engines based on OpenSim.Region.ScriptEngine.Common.dll will have almost identical settings, but in another section of this config file. | 703 | ; Other script engines based on OpenSim.Region.ScriptEngine.Common.dll will have almost identical settings, but in another section of this config file. |
@@ -981,6 +986,11 @@ InterregionComms = "RESTComms" | |||
981 | ; The factor the 10 m distances llimits are multiplied by | 986 | ; The factor the 10 m distances llimits are multiplied by |
982 | ScriptDistanceLimitFactor = 1.0 | 987 | ScriptDistanceLimitFactor = 1.0 |
983 | 988 | ||
989 | ; Maximum length of notecard line read | ||
990 | ; Increasing this to large values potentially opens | ||
991 | ; up the system to malicious scripters | ||
992 | ; NotecardLineReadCharsMax = 255 | ||
993 | |||
984 | ; OS Functions enable/disable | 994 | ; OS Functions enable/disable |
985 | ; For each function, you can add one line, as shown | 995 | ; For each function, you can add one line, as shown |
986 | ; The default for all functions allows them if below threat level | 996 | ; The default for all functions allows them if below threat level |