diff options
Diffstat (limited to 'program/lib/Roundcube/rcube_base_replacer.php')
-rw-r--r-- | program/lib/Roundcube/rcube_base_replacer.php | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/program/lib/Roundcube/rcube_base_replacer.php b/program/lib/Roundcube/rcube_base_replacer.php index fa6764753..a306086ee 100644 --- a/program/lib/Roundcube/rcube_base_replacer.php +++ b/program/lib/Roundcube/rcube_base_replacer.php @@ -61,9 +61,6 @@ class rcube_base_replacer */ public static function absolute_url($path, $base_url) { - $host_url = $base_url; - $abs_path = $path; - // check if path is an absolute URL if (preg_match('/^[fhtps]+:\/\//', $path)) { return $path; @@ -74,6 +71,9 @@ class rcube_base_replacer return $path; } + $host_url = $base_url; + $abs_path = $path; + // cut base_url to the last directory if (strrpos($base_url, '/') > 7) { $host_url = substr($base_url, 0, strpos($base_url, '/', 7)); @@ -89,7 +89,8 @@ class rcube_base_replacer $path = preg_replace('/^\.\//', '', $path); if (preg_match_all('/\.\.\//', $path, $matches, PREG_SET_ORDER)) { - foreach ($matches as $a_match) { + $cnt = count($matches); + while ($cnt--) { if ($pos = strrpos($base_url, '/')) { $base_url = substr($base_url, 0, $pos); } |