aboutsummaryrefslogtreecommitdiff
path: root/engine/lib/filestore.php
diff options
context:
space:
mode:
Diffstat (limited to 'engine/lib/filestore.php')
-rw-r--r--engine/lib/filestore.php10
1 files changed, 9 insertions, 1 deletions
diff --git a/engine/lib/filestore.php b/engine/lib/filestore.php
index 2f65ccc2f..89aee0d8d 100644
--- a/engine/lib/filestore.php
+++ b/engine/lib/filestore.php
@@ -319,6 +319,8 @@
*/
protected function make_file_matrix($filename)
{
+ $invalid_fs_chars = '*\'\\/"!$%^&*.%(){}[]#~?<>;|¬`@-+=';
+
$matrix = "";
$name = $filename;
@@ -330,7 +332,13 @@
$len = $this->matrix_depth;
for ($n = 0; $n < $len; $n++) {
- $matrix .= $filename[$n] . "/";
+
+ // Prevent a matrix being formed with unsafe characters
+ $char = $filename[$n];
+ if (strpos($invalid_fs_chars, $char)!==false)
+ $char = '_';
+
+ $matrix .= $char . "/";
}
return $matrix.$name."/";