summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStanislav Malyshev <stas@php.net>2009-07-09 00:24:26 +0000
committerStanislav Malyshev <stas@php.net>2009-07-09 00:24:26 +0000
commitc93ff250bcde1b62e92f7d3ec05131a438f7b1ed (patch)
treef43f6eb7ce1e5de015761ddc6aa2fa16ee73118e
parent0977b2a6f8ee06ab5ebab9a380422305abe2803a (diff)
downloadphp-git-c93ff250bcde1b62e92f7d3ec05131a438f7b1ed.tar.gz
fix mail.log openbasedir interaction with .htaccess
-rw-r--r--main/main.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/main/main.c b/main/main.c
index f47a087fb2..7617756150 100644
--- a/main/main.c
+++ b/main/main.c
@@ -482,6 +482,23 @@ static PHP_INI_MH(OnUpdateErrorLog)
/* {{{ PHP_INI_MH
*/
+static PHP_INI_MH(OnUpdateMailLog)
+{
+ /* Only do the safemode/open_basedir check at runtime */
+ if (stage == PHP_INI_STAGE_RUNTIME || stage == PHP_INI_STAGE_HTACCESS) {
+ if (PG(open_basedir) && php_check_open_basedir(new_value TSRMLS_CC)) {
+ return FAILURE;
+ }
+
+ }
+ OnUpdateString(entry, new_value, new_value_length, mh_arg1, mh_arg2, mh_arg3, stage TSRMLS_CC);
+ return SUCCESS;
+}
+/* }}} */
+
+
+/* {{{ PHP_INI_MH
+ */
static PHP_INI_MH(OnChangeMailForceExtra)
{
/* Don't allow changing it in htaccess */
@@ -579,7 +596,7 @@ PHP_INI_BEGIN()
PHP_INI_ENTRY("SMTP", "localhost",PHP_INI_ALL, NULL)
PHP_INI_ENTRY("smtp_port", "25", PHP_INI_ALL, NULL)
STD_PHP_INI_BOOLEAN("mail.add_x_header", "0", PHP_INI_SYSTEM|PHP_INI_PERDIR, OnUpdateBool, mail_x_header, php_core_globals, core_globals)
- STD_PHP_INI_ENTRY("mail.log", NULL, PHP_INI_SYSTEM|PHP_INI_PERDIR, OnUpdateString, mail_log, php_core_globals, core_globals)
+ STD_PHP_INI_ENTRY("mail.log", NULL, PHP_INI_SYSTEM|PHP_INI_PERDIR, OnUpdateMailLog, mail_log, php_core_globals, core_globals)
PHP_INI_ENTRY("browscap", NULL, PHP_INI_SYSTEM, NULL)
PHP_INI_ENTRY("memory_limit", "128M", PHP_INI_ALL, OnChangeMemoryLimit)
PHP_INI_ENTRY("precision", "14", PHP_INI_ALL, OnSetPrecision)