From 53499f8d35aed53dfa63bcac2c3084db1d9f509e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Mudr=C3=A1k?= Date: Mon, 7 Jan 2013 22:21:08 +0100 Subject: [PATCH] MDL-36977 Be more picky when it comes to migrating files in moodle1 backups --- backup/converter/moodle1/lib.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/backup/converter/moodle1/lib.php b/backup/converter/moodle1/lib.php index 9edda48b1cd..3b3fd4af61e 100644 --- a/backup/converter/moodle1/lib.php +++ b/backup/converter/moodle1/lib.php @@ -641,7 +641,9 @@ class moodle1_converter extends base_converter { } foreach ($matches[2] as $match) { $file = str_replace(array('$@FILEPHP@$', '$@SLASH@$', '$@FORCEDOWNLOAD@$'), array('', '/', ''), $match); - $files[] = rawurldecode($file); + if ($file === clean_param($file, PARAM_PATH)) { + $files[] = rawurldecode($file); + } } return array_unique($files); @@ -1209,6 +1211,10 @@ class moodle1_file_manager implements loggable { $sourcefullpath = $this->basepath.'/'.$sourcepath; + if ($sourcefullpath !== clean_param($sourcefullpath, PARAM_PATH)) { + throw new moodle1_convert_exception('file_invalid_path', $sourcefullpath); + } + if (!is_readable($sourcefullpath)) { throw new moodle1_convert_exception('file_not_readable', $sourcefullpath); }