diff options
author | Justin Clark-Casey (justincc) | 2013-03-14 23:09:59 +0000 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2013-03-14 23:09:59 +0000 |
commit | 55204ccde6099652652bbfa315abdd321e96a340 (patch) | |
tree | 1a701a075a8dfa42a45f14b82078e67277fcd880 /OpenSim/Region | |
parent | refactor: Use LSL_Vector(Vector3) constructor in llCastRay() (diff) | |
download | opensim-SC_OLD-55204ccde6099652652bbfa315abdd321e96a340.zip opensim-SC_OLD-55204ccde6099652652bbfa315abdd321e96a340.tar.gz opensim-SC_OLD-55204ccde6099652652bbfa315abdd321e96a340.tar.bz2 opensim-SC_OLD-55204ccde6099652652bbfa315abdd321e96a340.tar.xz |
Fix minor race conditions in OSSL_Api functions where a parcel could be misidentified for moving prims.
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index bd83f02..dc03ee6 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | |||
@@ -363,7 +363,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
363 | //OSSL only may be used if object is in the same group as the parcel | 363 | //OSSL only may be used if object is in the same group as the parcel |
364 | if (m_FunctionPerms[function].AllowedOwnerClasses.Contains("PARCEL_GROUP_MEMBER")) | 364 | if (m_FunctionPerms[function].AllowedOwnerClasses.Contains("PARCEL_GROUP_MEMBER")) |
365 | { | 365 | { |
366 | ILandObject land = World.LandChannel.GetLandObject(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y); | 366 | ILandObject land = World.LandChannel.GetLandObject(m_host.AbsolutePosition); |
367 | 367 | ||
368 | if (land.LandData.GroupID == m_item.GroupID && land.LandData.GroupID != UUID.Zero) | 368 | if (land.LandData.GroupID == m_item.GroupID && land.LandData.GroupID != UUID.Zero) |
369 | { | 369 | { |
@@ -374,7 +374,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
374 | //Only Parcelowners may use the function | 374 | //Only Parcelowners may use the function |
375 | if (m_FunctionPerms[function].AllowedOwnerClasses.Contains("PARCEL_OWNER")) | 375 | if (m_FunctionPerms[function].AllowedOwnerClasses.Contains("PARCEL_OWNER")) |
376 | { | 376 | { |
377 | ILandObject land = World.LandChannel.GetLandObject(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y); | 377 | ILandObject land = World.LandChannel.GetLandObject(m_host.AbsolutePosition); |
378 | 378 | ||
379 | if (land.LandData.OwnerID == ownerID) | 379 | if (land.LandData.OwnerID == ownerID) |
380 | { | 380 | { |
@@ -1502,8 +1502,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
1502 | 1502 | ||
1503 | m_host.AddScriptLPS(1); | 1503 | m_host.AddScriptLPS(1); |
1504 | 1504 | ||
1505 | ILandObject land | 1505 | ILandObject land = World.LandChannel.GetLandObject(m_host.AbsolutePosition); |
1506 | = World.LandChannel.GetLandObject(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y); | ||
1507 | 1506 | ||
1508 | if (land.LandData.OwnerID != m_host.OwnerID) | 1507 | if (land.LandData.OwnerID != m_host.OwnerID) |
1509 | return; | 1508 | return; |
@@ -1519,8 +1518,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
1519 | 1518 | ||
1520 | m_host.AddScriptLPS(1); | 1519 | m_host.AddScriptLPS(1); |
1521 | 1520 | ||
1522 | ILandObject land | 1521 | ILandObject land = World.LandChannel.GetLandObject(m_host.AbsolutePosition); |
1523 | = World.LandChannel.GetLandObject(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y); | ||
1524 | 1522 | ||
1525 | if (land.LandData.OwnerID != m_host.OwnerID) | 1523 | if (land.LandData.OwnerID != m_host.OwnerID) |
1526 | { | 1524 | { |