aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs')
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs13
1 files changed, 11 insertions, 2 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs
index a4445eb..4c02214 100644
--- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs
@@ -161,14 +161,18 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
161 failedAssetRestores++; 161 failedAssetRestores++;
162 } 162 }
163 else if (filePath.StartsWith(ArchiveConstants.INVENTORY_PATH)) 163 else if (filePath.StartsWith(ArchiveConstants.INVENTORY_PATH))
164 { 164 {
165 InventoryFolderBase foundFolder 165 InventoryFolderBase foundFolder
166 = ReplicateArchivePathToUserInventory( 166 = ReplicateArchivePathToUserInventory(
167 filePath, TarArchiveReader.TarEntryType.TYPE_DIRECTORY == entryType, 167 filePath, TarArchiveReader.TarEntryType.TYPE_DIRECTORY == entryType,
168 rootDestinationFolder, foldersCreated, nodesLoaded); 168 rootDestinationFolder, foldersCreated, nodesLoaded);
169 169
170 if (TarArchiveReader.TarEntryType.TYPE_DIRECTORY != entryType) 170 if (TarArchiveReader.TarEntryType.TYPE_DIRECTORY != entryType)
171 { 171 {
172 // Escape back characters
173 filePath = filePath.Replace("/", "/");
174 filePath = filePath.Replace("&", "&");
175
172 InventoryItemBase item = UserInventoryItemSerializer.Deserialize(data); 176 InventoryItemBase item = UserInventoryItemSerializer.Deserialize(data);
173 177
174 // Don't use the item ID that's in the file 178 // Don't use the item ID that's in the file
@@ -289,6 +293,11 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
289 ArchiveConstants.INVENTORY_NODE_NAME_COMPONENT_SEPARATOR); 293 ArchiveConstants.INVENTORY_NODE_NAME_COMPONENT_SEPARATOR);
290 294
291 string newFolderName = rawDirsToCreate[i].Remove(identicalNameIdentifierIndex); 295 string newFolderName = rawDirsToCreate[i].Remove(identicalNameIdentifierIndex);
296
297 // Escape back characters
298 newFolderName = newFolderName.Replace("/", "/");
299 newFolderName = newFolderName.Replace("&", "&");
300
292 UUID newFolderId = UUID.Random(); 301 UUID newFolderId = UUID.Random();
293 302
294 // Asset type has to be Unknown here rather than Folder, otherwise the created folder can't be 303 // Asset type has to be Unknown here rather than Folder, otherwise the created folder can't be