aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/Scripting/EMailModules
diff options
context:
space:
mode:
authorMelanie Thielker2016-03-03 17:08:56 +0100
committerMelanie Thielker2016-03-03 17:08:56 +0100
commitc541b5cf43f9853774af150b7e608e51846b423c (patch)
tree0a799288dace45a0ddb6b7c932fa0dcea1abbd71 /OpenSim/Region/CoreModules/Scripting/EMailModules
parentPushed AssemblyVersion up to VersionInfo, so that we don't need to do global ... (diff)
downloadopensim-SC-c541b5cf43f9853774af150b7e608e51846b423c.zip
opensim-SC-c541b5cf43f9853774af150b7e608e51846b423c.tar.gz
opensim-SC-c541b5cf43f9853774af150b7e608e51846b423c.tar.bz2
opensim-SC-c541b5cf43f9853774af150b7e608e51846b423c.tar.xz
Mantis 7833: Fix a condition where email sent from an object that is in
the process of being removed can cause a null reference
Diffstat (limited to 'OpenSim/Region/CoreModules/Scripting/EMailModules')
-rw-r--r--OpenSim/Region/CoreModules/Scripting/EMailModules/EmailModule.cs19
1 files changed, 8 insertions, 11 deletions
diff --git a/OpenSim/Region/CoreModules/Scripting/EMailModules/EmailModule.cs b/OpenSim/Region/CoreModules/Scripting/EMailModules/EmailModule.cs
index 4e7ad75..0752ae5 100644
--- a/OpenSim/Region/CoreModules/Scripting/EMailModules/EmailModule.cs
+++ b/OpenSim/Region/CoreModules/Scripting/EMailModules/EmailModule.cs
@@ -224,8 +224,9 @@ namespace OpenSim.Region.CoreModules.Scripting.EmailModules
224 return null; 224 return null;
225 } 225 }
226 226
227 private void resolveNamePositionRegionName(UUID objectID, out string ObjectName, out string ObjectAbsolutePosition, out string ObjectRegionName) 227 private bool resolveNamePositionRegionName(UUID objectID, out string ObjectName, out string ObjectAbsolutePosition, out string ObjectRegionName)
228 { 228 {
229 ObjectName = ObjectAbsolutePosition = ObjectRegionName = String.Empty;
229 string m_ObjectRegionName; 230 string m_ObjectRegionName;
230 int objectLocX; 231 int objectLocX;
231 int objectLocY; 232 int objectLocY;
@@ -239,15 +240,9 @@ namespace OpenSim.Region.CoreModules.Scripting.EmailModules
239 ObjectAbsolutePosition = "(" + objectLocX + ", " + objectLocY + ", " + objectLocZ + ")"; 240 ObjectAbsolutePosition = "(" + objectLocX + ", " + objectLocY + ", " + objectLocZ + ")";
240 ObjectName = part.Name; 241 ObjectName = part.Name;
241 ObjectRegionName = m_ObjectRegionName; 242 ObjectRegionName = m_ObjectRegionName;
242 return; 243 return true;
243 } 244 }
244 objectLocX = (int)part.AbsolutePosition.X; 245 return false;
245 objectLocY = (int)part.AbsolutePosition.Y;
246 objectLocZ = (int)part.AbsolutePosition.Z;
247 ObjectAbsolutePosition = "(" + objectLocX + ", " + objectLocY + ", " + objectLocZ + ")";
248 ObjectName = part.Name;
249 ObjectRegionName = m_ObjectRegionName;
250 return;
251 } 246 }
252 247
253 /// <summary> 248 /// <summary>
@@ -286,7 +281,8 @@ namespace OpenSim.Region.CoreModules.Scripting.EmailModules
286 string LastObjectPosition = string.Empty; 281 string LastObjectPosition = string.Empty;
287 string LastObjectRegionName = string.Empty; 282 string LastObjectRegionName = string.Empty;
288 283
289 resolveNamePositionRegionName(objectID, out LastObjectName, out LastObjectPosition, out LastObjectRegionName); 284 if (!resolveNamePositionRegionName(objectID, out LastObjectName, out LastObjectPosition, out LastObjectRegionName))
285 return;
290 286
291 if (!address.EndsWith(m_InterObjectHostname)) 287 if (!address.EndsWith(m_InterObjectHostname))
292 { 288 {
@@ -302,7 +298,8 @@ namespace OpenSim.Region.CoreModules.Scripting.EmailModules
302 //Subject 298 //Subject
303 emailMessage.Subject = subject; 299 emailMessage.Subject = subject;
304 //TEXT Body 300 //TEXT Body
305 resolveNamePositionRegionName(objectID, out LastObjectName, out LastObjectPosition, out LastObjectRegionName); 301 if (!resolveNamePositionRegionName(objectID, out LastObjectName, out LastObjectPosition, out LastObjectRegionName))
302 return;
306 emailMessage.BodyText = "Object-Name: " + LastObjectName + 303 emailMessage.BodyText = "Object-Name: " + LastObjectName +
307 "\nRegion: " + LastObjectRegionName + "\nLocal-Position: " + 304 "\nRegion: " + LastObjectRegionName + "\nLocal-Position: " +
308 LastObjectPosition + "\n\n" + body; 305 LastObjectPosition + "\n\n" + body;