Update of /var/cvs/src/org/mmbase/framework
In directory james.mmbase.org:/tmp/cvs-serv9700

Modified Files:
        CachedRenderer.java DocumentationRenderer.java 
Log Message:
Make sure only valid filenames are used


See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/framework


Index: CachedRenderer.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/framework/CachedRenderer.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- CachedRenderer.java 13 Jan 2009 20:59:58 -0000      1.6
+++ CachedRenderer.java 13 Jan 2009 21:23:52 -0000      1.7
@@ -13,6 +13,7 @@
 import java.io.*;
 import java.net.*;
 import java.util.*;
+import java.util.regex.*;
 import java.util.concurrent.*;
 
 
@@ -51,7 +52,7 @@
 ]]></pre>
  *
  * @author Michiel Meeuwissen
- * @version $Id: CachedRenderer.java,v 1.6 2009/01/13 20:59:58 michiel Exp $
+ * @version $Id: CachedRenderer.java,v 1.7 2009/01/13 21:23:52 michiel Exp $
  * @since MMBase-1.9.1
 
  */
@@ -116,14 +117,17 @@
 
     private static final String CACHE_EXTENSION = ".cache";
     private static final String ETAG_EXTENSION = ".etag";
+    private static final Pattern INVALID_IN_FILENAME = 
Pattern.compile("[\\/\\\\\\s]");
 
     protected File getCacheFile(Parameters blockParameters, RenderHints hints) 
{
         File dir = new File(MMBase.getMMBase().getDataDir(), directory);
         File componentDir = new File(dir, getBlock().getComponent().getName());
         File blockDir = new File(componentDir, getBlock().getName());
         blockDir.mkdirs();
-        String key = getBlock().getName() + "_" + getKey(blockParameters) + 
"_" + hints.getWindowState() + "_" + hints.getId() + "_" + 
hints.getStyleClass() + CACHE_EXTENSION;
-        return new File(blockDir, key);
+        String key = getBlock().getName() + "+" + getKey(blockParameters) + 
"+" + hints.getWindowState() + "_" + hints.getId() + "_" + 
hints.getStyleClass() + CACHE_EXTENSION;
+
+        String escaped = INVALID_IN_FILENAME.matcher(key).replaceAll("_");
+        return new File(blockDir, escaped);
 
     }
 


Index: DocumentationRenderer.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/framework/DocumentationRenderer.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- DocumentationRenderer.java  13 Jan 2009 08:24:21 -0000      1.1
+++ DocumentationRenderer.java  13 Jan 2009 21:23:52 -0000      1.2
@@ -29,7 +29,7 @@
  * render the documenation from the xml's in a/the jar.
  *
  * @author Michiel Meeuwissen
- * @version $Id: DocumentationRenderer.java,v 1.1 2009/01/13 08:24:21 michiel 
Exp $
+ * @version $Id: DocumentationRenderer.java,v 1.2 2009/01/13 21:23:52 michiel 
Exp $
  * @since MMBase-1.9.1
 
  */
@@ -61,7 +61,7 @@
                                 String db = blockParameters != null ? 
blockParameters.getString("docbook") : null;
                                 if (db == null || "".equals(db)) {
                                     db = DocumentationRenderer.this.docbook;
-                                    if (db == null) throw new 
IllegalArgumentException("docbook parameter not set on parameters, nor as 
renderer property");
+                                    //if (db == null) throw new 
IllegalArgumentException("docbook parameter not set on parameters, nor as 
renderer property");
                                 }
                                 return new URL(repository + module + "/" + 
db).toURI();
                             } catch (MalformedURLException mfe) {
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to