From 264bc50451f7e79d6a2531e1d0621977487b69c2 Mon Sep 17 00:00:00 2001 From: "Michael Kaufmann (d00p)" Date: Tue, 18 May 2010 11:48:58 +0000 Subject: [PATCH] - respect admins open_basedir path settings (if more than one path), fixes #238 --- scripts/jobs/cron_tasks.inc.http.10.apache.php | 7 ++++++- .../jobs/cron_tasks.inc.http.15.apache_fcgid.php | 15 +++++++++++++-- .../cron_tasks.inc.http.25.lighttpd_fcgid.php | 15 +++++++++++++-- 3 files changed, 32 insertions(+), 5 deletions(-) diff --git a/scripts/jobs/cron_tasks.inc.http.10.apache.php b/scripts/jobs/cron_tasks.inc.http.10.apache.php index cbc52c4e..318c8a16 100644 --- a/scripts/jobs/cron_tasks.inc.http.10.apache.php +++ b/scripts/jobs/cron_tasks.inc.http.10.apache.php @@ -278,8 +278,13 @@ class apache { $_phpappendopenbasedir = appendOpenBasedirPath($domain['documentroot'], true); } - $_phpappendopenbasedir .= appendOpenBasedirPath($this->settings['system']['phpappendopenbasedir']); + $_custom_openbasedir = explode(':', $this->settings['system']['phpappendopenbasedir']); + foreach($_custom_openbasedir as $cobd) + { + $_phpappendopenbasedir .= appendOpenBasedirPath($cobd); + } + $php_options_text.= ' php_admin_value open_basedir "' . $_phpappendopenbasedir . '"'."\n"; } diff --git a/scripts/jobs/cron_tasks.inc.http.15.apache_fcgid.php b/scripts/jobs/cron_tasks.inc.http.15.apache_fcgid.php index 3506c578..2f318738 100644 --- a/scripts/jobs/cron_tasks.inc.http.15.apache_fcgid.php +++ b/scripts/jobs/cron_tasks.inc.http.15.apache_fcgid.php @@ -166,9 +166,20 @@ class apache_fcgid extends apache if($domain['openbasedir'] == '1') { $openbasedirc = ''; - $_phpappendopenbasedir = appendOpenBasedirPath($this->settings['system']['mod_fcgid_peardir']); - $_phpappendopenbasedir .= appendOpenBasedirPath($this->settings['system']['phpappendopenbasedir']); + $_phpappendopenbasedir = ''; + + $_custom_openbasedir = explode(':', $this->settings['system']['mod_fcgid_peardir']); + foreach($_custom_openbasedir as $cobd) + { + $_phpappendopenbasedir .= appendOpenBasedirPath($cobd); + } + $_custom_openbasedir = explode(':', $this->settings['system']['phpappendopenbasedir']); + foreach($_custom_openbasedir as $cobd) + { + $_phpappendopenbasedir .= appendOpenBasedirPath($cobd); + } + if($domain['openbasedir_path'] == '0' && strstr($domain['documentroot'], ":") === false) { $openbasedir = appendOpenBasedirPath($domain['documentroot'], true); diff --git a/scripts/jobs/cron_tasks.inc.http.25.lighttpd_fcgid.php b/scripts/jobs/cron_tasks.inc.http.25.lighttpd_fcgid.php index 13a0a091..c3294e73 100644 --- a/scripts/jobs/cron_tasks.inc.http.25.lighttpd_fcgid.php +++ b/scripts/jobs/cron_tasks.inc.http.25.lighttpd_fcgid.php @@ -190,8 +190,19 @@ class lighttpd_fcgid extends lighttpd if($domain['openbasedir'] == '1') { $openbasedirc = ''; - $_phpappendopenbasedir = appendOpenBasedirPath($this->settings['system']['mod_fcgid_peardir']); - $_phpappendopenbasedir .= appendOpenBasedirPath($this->settings['system']['phpappendopenbasedir']); + $_phpappendopenbasedir = ''; + + $_custom_openbasedir = explode(':', $this->settings['system']['mod_fcgid_peardir']); + foreach($_custom_openbasedir as $cobd) + { + $_phpappendopenbasedir .= appendOpenBasedirPath($cobd); + } + + $_custom_openbasedir = explode(':', $this->settings['system']['phpappendopenbasedir']); + foreach($_custom_openbasedir as $cobd) + { + $_phpappendopenbasedir .= appendOpenBasedirPath($cobd); + } if($domain['openbasedir_path'] == '0' && strstr($domain['documentroot'], ":") === false) {