diff options
author | Justin Clark-Casey (justincc) | 2012-02-10 19:58:34 +0000 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2012-02-10 19:58:34 +0000 |
commit | 44d84bc2779165e75224975e83ca4539a00e9d24 (patch) | |
tree | 731a172f1d8a8065281363f54fadb5ea09efa27d | |
parent | Fix: Unable to remove AV from friend list (sqldb-bug) http://opensimulator.or... (diff) | |
download | opensim-SC-44d84bc2779165e75224975e83ca4539a00e9d24.zip opensim-SC-44d84bc2779165e75224975e83ca4539a00e9d24.tar.gz opensim-SC-44d84bc2779165e75224975e83ca4539a00e9d24.tar.bz2 opensim-SC-44d84bc2779165e75224975e83ca4539a00e9d24.tar.xz |
Fix bug where somebody taking a copy of an object they didn't own that was rezzed before the region was restarted would wrongly place the copy in the object owner's inventory.
Addresses http://opensimulator.org/mantis/view.php?id=5825
-rw-r--r-- | OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs | 12 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs | 3 |
2 files changed, 12 insertions, 3 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs index 8b5b1a7..63ba3d3 100644 --- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs +++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs | |||
@@ -546,12 +546,20 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
546 | return null; | 546 | return null; |
547 | 547 | ||
548 | userID = remoteClient.AgentId; | 548 | userID = remoteClient.AgentId; |
549 | |||
550 | // m_log.DebugFormat( | ||
551 | // "[INVENTORY ACCESS MODULE]: Target of {0} in CreateItemForObject() is {1} {2}", | ||
552 | // action, remoteClient.Name, userID); | ||
549 | } | 553 | } |
550 | else | 554 | else |
551 | { | 555 | { |
552 | // All returns / deletes go to the object owner | 556 | // All returns / deletes go to the object owner |
553 | // | 557 | // |
554 | userID = so.RootPart.OwnerID; | 558 | userID = so.RootPart.OwnerID; |
559 | |||
560 | // m_log.DebugFormat( | ||
561 | // "[INVENTORY ACCESS MODULE]: Target of {0} in CreateItemForObject() is object owner {1}", | ||
562 | // action, userID); | ||
555 | } | 563 | } |
556 | 564 | ||
557 | if (userID == UUID.Zero) // Can't proceed | 565 | if (userID == UUID.Zero) // Can't proceed |
@@ -637,11 +645,11 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
637 | } | 645 | } |
638 | 646 | ||
639 | // Override and put into where it came from, if it came | 647 | // Override and put into where it came from, if it came |
640 | // from anywhere in inventory | 648 | // from anywhere in inventory and the owner is taking it back. |
641 | // | 649 | // |
642 | if (action == DeRezAction.Take || action == DeRezAction.TakeCopy) | 650 | if (action == DeRezAction.Take || action == DeRezAction.TakeCopy) |
643 | { | 651 | { |
644 | if (so.RootPart.FromFolderID != UUID.Zero) | 652 | if (so.RootPart.FromFolderID != UUID.Zero && userID == remoteClient.AgentId) |
645 | { | 653 | { |
646 | InventoryFolderBase f = new InventoryFolderBase(so.RootPart.FromFolderID, userID); | 654 | InventoryFolderBase f = new InventoryFolderBase(so.RootPart.FromFolderID, userID); |
647 | folder = m_Scene.InventoryService.GetFolder(f); | 655 | folder = m_Scene.InventoryService.GetFolder(f); |
diff --git a/OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs b/OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs index 5dfd3e0..f678d07 100644 --- a/OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs +++ b/OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs | |||
@@ -148,7 +148,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
148 | x = m_inventoryDeletes.Dequeue(); | 148 | x = m_inventoryDeletes.Dequeue(); |
149 | 149 | ||
150 | m_log.DebugFormat( | 150 | m_log.DebugFormat( |
151 | "[ASYNC DELETER]: Sending object to user's inventory, action {1}, count {2}, {0} item(s) remaining.", left, x.action, x.objectGroups.Count); | 151 | "[ASYNC DELETER]: Sending object to user's inventory, action {1}, count {2}, {0} item(s) remaining.", |
152 | left, x.action, x.objectGroups.Count); | ||
152 | 153 | ||
153 | try | 154 | try |
154 | { | 155 | { |