aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs15
-rw-r--r--bin/OpenSim.ini.example10
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