Hi! I've produced a simple patch for PHP 4.0.6 which enables administrator to allow scripts access to include dir eg. for some common php scripts, during safe_mode of course. Anyway it may produce a bug [dunno why :(] that causes open_basedir to be turned on automagically when include_path is set.
-- email: [[EMAIL PROTECTED]] gsm: +48 606 787423 echo Ecl.Pl Al. NMP 31 Częstochowa http://www.ecl.pl/ // Ja zacznę programować, a ty dowiedz się, czego chcą
diff -ur main.orig/main.c main/main.c --- main.orig/main.c Tue May 8 22:11:46 2001 +++ main/main.c Sun Oct 28 20:21:04 2001 @@ -221,6 +221,7 @@ PHP_INI_ENTRY("max_execution_time", "30", PHP_INI_ALL, OnUpdateTimeout) STD_PHP_INI_ENTRY("open_basedir", NULL, PHP_INI_SYSTEM, OnUpdateStringUnempty, open_basedir, php_core_globals, core_globals) STD_PHP_INI_ENTRY("safe_mode_exec_dir", "1", PHP_INI_SYSTEM, OnUpdateString, safe_mode_exec_dir, php_core_globals, core_globals) + STD_PHP_INI_ENTRY("safe_mode_include_dir", "1", +PHP_INI_SYSTEM, OnUpdateString, safe_mode_include_dir, + php_core_globals, core_globals) STD_PHP_INI_ENTRY("upload_max_filesize", "2M", PHP_INI_ALL, OnUpdateInt, upload_max_filesize, php_core_globals, core_globals) STD_PHP_INI_ENTRY("file_uploads", "1", PHP_INI_ALL, OnUpdateBool, file_uploads, php_core_globals, core_globals) STD_PHP_INI_ENTRY("post_max_size", "8M", PHP_INI_SYSTEM, OnUpdateInt, post_max_size, sapi_globals_struct,sapi_globals) diff -ur main.orig/php_globals.h main/php_globals.h --- main.orig/php_globals.h Wed Apr 4 22:46:26 2001 +++ main/php_globals.h Sun Oct 28 20:20:35 2001 @@ -74,6 +74,7 @@ char *output_handler; char *safe_mode_exec_dir; + char *safe_mode_include_dir; long memory_limit; diff -ur main.orig/safe_mode.c main/safe_mode.c --- main.orig/safe_mode.c Mon Apr 30 14:43:40 2001 +++ main/safe_mode.c Sun Oct 28 20:23:27 2001 @@ -69,6 +69,16 @@ return 1; } + /* + * Added by [EMAIL PROTECTED] - check if the file is in special + * directory where all system includes go [like autoprepend directives] + */ + + if ( !strncasecmp(filename, PG(safe_mode_include_dir), + strlen( PG(safe_mode_include_dir) )) ) { + return 1; + } + if (mode != CHECKUID_ALLOW_ONLY_DIR) { ret = VCWD_STAT(filename, &sb); if (ret < 0) {
-- PHP Development Mailing List <http://www.php.net/> To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]