MDL-48929 repository_filesystem: Valide relative path against realpath

On Windows systems, there could have been a mix of back and forward
slashes, causing the validation of the relative path to fail. Now
we will always get the realpath before comparing.
This commit is contained in:
Nelson Moller 2015-01-22 08:57:54 -05:00 committed by Frederic Massart
parent da0ef2e4cf
commit 413907cff3

View File

@ -575,7 +575,7 @@ class repository_filesystem extends repository {
$fullrelativefilepath = realpath($this->get_rootpath().$basepath.$relativepath);
// Sanity check to make sure this path is inside this repository and the file exists.
if (strpos($fullrelativefilepath, $this->get_rootpath()) === 0 && file_exists($fullrelativefilepath)) {
if (strpos($fullrelativefilepath, realpath($this->get_rootpath())) === 0 && file_exists($fullrelativefilepath)) {
send_file($fullrelativefilepath, basename($relativepath), null, 0);
}
}
@ -665,4 +665,4 @@ function repository_filesystem_cron() {
$instances[$itemid]->remove_obsolete_thumbnails($files);
}
}
}
}