/[Apache-SVN]/jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/impl/DefaultFileReplicator.java
ViewVC logotype

Diff of /jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/impl/DefaultFileReplicator.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

--- jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/impl/DefaultFileReplicator.java	2005/06/02 12:15:33	179575
+++ jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/impl/DefaultFileReplicator.java	2005/06/02 12:16:31	179576
@@ -48,6 +48,11 @@ public final class DefaultFileReplicator
     private File tempDir;
     private long filecount;
 
+    private char[] TMP_RESERVED_CHARS = new char[]
+    {
+        '?', '/', '\\', ' ', '&', '"', '\'', '*', '#', ';', ':', '<', '>', '|'
+    };
+
     /**
      * constructor to set the location of the temporary directory
      *
@@ -133,7 +138,11 @@ public final class DefaultFileReplicator
     {
         // BUG29007
         // return baseName + "_" + getFilecount() + ".tmp";
-        return "tmp_" + getFilecount() + "_" + baseName;
+
+        // imario@apache.org: BUG34976 get rid of maybe reserved and dangerous characters
+        // e.g. to allow replication of http://hostname.org/fileservlet?file=abc.txt
+        String safeBasename = UriParser.encode(baseName, TMP_RESERVED_CHARS).replace('%', '_');
+        return "tmp_" + getFilecount() + "_" + safeBasename;
     }
 
     /**

 

infrastructure at apache.org
ViewVC Help
Powered by ViewVC 1.1.26