cvs: php-src(PHP_5_2) /main main.c
| From: | Stanislav Malyshev | Date: | Fri, 03 Aug 2007 01:15:51 +0000 |
| Subject: | cvs: php-src(PHP_5_2) /main main.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-45695@lists.php.net to get a copy of this message | ||
stas Fri Aug 3 01:15:51 2007 UTC
Modified files: (Branch: PHP_5_2)
/php-src/main main.c
Log:
make error_log setting access-controlled by safe_mode/open_basedir
http://cvs.php.net/viewvc.cgi/php-src/main/main.c?r1=1.640.2.23.2.51&r2=1.640.2.23.2.52&diff_format=u
Index: php-src/main/main.c
diff -u php-src/main/main.c:1.640.2.23.2.51 php-src/main/main.c:1.640.2.23.2.52
--- php-src/main/main.c:1.640.2.23.2.51 Wed Aug 1 23:51:45 2007
+++ php-src/main/main.c Fri Aug 3 01:15:51 2007
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: main.c,v 1.640.2.23.2.51 2007/08/01 23:51:45 stas Exp $ */
+/* $Id: main.c,v 1.640.2.23.2.52 2007/08/03 01:15:51 stas Exp $ */
/* {{{ includes
*/
@@ -297,6 +297,27 @@
}
/* }}} */
+/* {{{ PHP_INI_MH
+ */
+static PHP_INI_MH(OnUpdateErrorLog)
+{
+ /* Only do the safemode/open_basedir check at runtime */
+ if ((stage == PHP_INI_STAGE_RUNTIME || stage == PHP_INI_STAGE_HTACCESS) &&
+ strcmp(PG(error_log), "syslog")) {
+ if (PG(safe_mode) && (!php_checkuid(new_value, NULL, CHECKUID_CHECK_FILE_AND_DIR))) {
+ return FAILURE;
+ }
+
+ 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;
+}
+/* }}} */
+
/* Need to convert to strings and make use of:
* PHP_SAFE_MODE
*
@@ -381,7 +402,7 @@
STD_PHP_INI_ENTRY("doc_root", NULL, PHP_INI_SYSTEM, OnUpdateStringUnempty, doc_root, php_core_globals, core_globals)
STD_PHP_INI_ENTRY("default_charset", SAPI_DEFAULT_CHARSET, PHP_INI_ALL, OnUpdateString, default_charset, sapi_globals_struct,sapi_globals)
STD_PHP_INI_ENTRY("default_mimetype", SAPI_DEFAULT_MIMETYPE, PHP_INI_ALL, OnUpdateString, default_mimetype, sapi_globals_struct,sapi_globals)
- STD_PHP_INI_ENTRY("error_log", NULL, PHP_INI_ALL, OnUpdateString, error_log, php_core_globals, core_globals)
+ STD_PHP_INI_ENTRY("error_log", NULL, PHP_INI_ALL, OnUpdateErrorLog, error_log, php_core_globals, core_globals)
STD_PHP_INI_ENTRY("extension_dir", PHP_EXTENSION_DIR, PHP_INI_SYSTEM, OnUpdateStringUnempty, extension_dir, php_core_globals, core_globals)
STD_PHP_INI_ENTRY("include_path", PHP_INCLUDE_PATH, PHP_INI_ALL, OnUpdateStringUnempty, include_path, php_core_globals, core_globals)
PHP_INI_ENTRY("max_execution_time", "30", PHP_INI_ALL, OnUpdateTimeout)