diff options
author | CasperW | 2010-01-18 17:56:27 +0100 |
---|---|---|
committer | Melanie | 2010-01-18 16:52:06 +0000 |
commit | 3ff28e7a8f6a7816dd76307c36153ba8f393dea1 (patch) | |
tree | eb110a78ff8c115cb179dea684e7b42282ea741f | |
parent | Let monitor data be requested using either the short form of the name or the (diff) | |
download | opensim-SC-3ff28e7a8f6a7816dd76307c36153ba8f393dea1.zip opensim-SC-3ff28e7a8f6a7816dd76307c36153ba8f393dea1.tar.gz opensim-SC-3ff28e7a8f6a7816dd76307c36153ba8f393dea1.tar.bz2 opensim-SC-3ff28e7a8f6a7816dd76307c36153ba8f393dea1.tar.xz |
Fix a major security problem with osSetDynamicTexture which allowed the deletion of /any/ asset.
-rw-r--r-- | OpenSim/Region/CoreModules/Scripting/DynamicTexture/DynamicTextureModule.cs | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/OpenSim/Region/CoreModules/Scripting/DynamicTexture/DynamicTextureModule.cs b/OpenSim/Region/CoreModules/Scripting/DynamicTexture/DynamicTextureModule.cs index f51d0c2..679c871 100644 --- a/OpenSim/Region/CoreModules/Scripting/DynamicTexture/DynamicTextureModule.cs +++ b/OpenSim/Region/CoreModules/Scripting/DynamicTexture/DynamicTextureModule.cs | |||
@@ -358,11 +358,18 @@ namespace OpenSim.Region.CoreModules.Scripting.DynamicTexture | |||
358 | // tmptex.DefaultTexture.Fullbright = true; | 358 | // tmptex.DefaultTexture.Fullbright = true; |
359 | 359 | ||
360 | part.UpdateTexture(tmptex); | 360 | part.UpdateTexture(tmptex); |
361 | } | 361 | } |
362 | 362 | ||
363 | if (oldID != UUID.Zero && ((Disp & DISP_EXPIRE) != 0)) | 363 | if (oldID != UUID.Zero && ((Disp & DISP_EXPIRE) != 0)) |
364 | { | 364 | { |
365 | scene.AssetService.Delete(oldID.ToString()); | 365 | if (oldAsset == null) oldAsset = scene.AssetService.Get(oldID.ToString()); |
366 | if (oldAsset != null) | ||
367 | { | ||
368 | if (oldAsset.Temporary == true) | ||
369 | { | ||
370 | scene.AssetService.Delete(oldID.ToString()); | ||
371 | } | ||
372 | } | ||
366 | } | 373 | } |
367 | } | 374 | } |
368 | 375 | ||