summaryrefslogtreecommitdiff
path: root/program/lib/Roundcube/rcube_base_replacer.php
diff options
context:
space:
mode:
Diffstat (limited to 'program/lib/Roundcube/rcube_base_replacer.php')
-rw-r--r--program/lib/Roundcube/rcube_base_replacer.php9
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);
}