diff options
| author | 2018-06-01 14:19:24 -0700 | |
|---|---|---|
| committer | 2018-06-01 23:19:23 +0200 | |
| commit | fa3532dc8eec13edaff0a9c9fe145236a0eccde3 (patch) | |
| tree | e2fb55feb46e40bcfcafc2024ddb23c8ce28d529 /p/ext.php | |
| parent | 4c8f1472382e9bf4f5d0cea0d9fe886c7bbe971b (diff) | |
Use realpath of EXTENSIONS_PATH (#1911)
This handles the case where the extensions directory might be a symlink
Diffstat (limited to 'p/ext.php')
| -rw-r--r-- | p/ext.php | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -19,13 +19,14 @@ require(__DIR__ . '/../constants.php'); */ function is_valid_path($path) { // It must be under the extension path. - $in_ext_path = (substr($path, 0, strlen(EXTENSIONS_PATH)) === EXTENSIONS_PATH); + $real_ext_path = realpath(EXTENSIONS_PATH); + $in_ext_path = (substr($path, 0, strlen($real_ext_path)) === $real_ext_path); if (!$in_ext_path) { return false; } // File to serve must be under a `ext_dir/static/` directory. - $path_relative_to_ext = substr($path, strlen(EXTENSIONS_PATH) + 1); + $path_relative_to_ext = substr($path, strlen($real_ext_path) + 1); $path_splitted = explode('/', $path_relative_to_ext); if (count($path_splitted) < 3 || $path_splitted[1] !== 'static') { return false; |
