sniper Fri Jul 29 10:29:29 2005 EDT Modified files: /php-src/main php_ini.c Log: - Fixed few logic errors in php*.ini search path creation as documented here: http://fi.php.net/manual/en/configuration.php#configuration.file # # Before this patch: # # $ strace php -r 'echo 1;' 2>&1 | grep php.ini # open("/www/php/lib/php.ini", O_RDONLY) = 3 # lstat64("/www/php/lib/php.ini", {st_mode=S_IFREG|0640, st_size=46264, ...}) = 0 # # With this patch: # # $ strace php -r 'echo 1;' 2>&1 | grep php.ini # open("./php.ini", O_RDONLY) = -1 ENOENT (No such file or directory) # open("/usr/src/php5_1_full/sapi/cli/php.ini", O_RDONLY) = -1 ENOENT (No such file or directory) # open("/www/php/lib/php.ini", O_RDONLY) = 3 # lstat64("/www/php/lib/php.ini", {st_mode=S_IFREG|0640, st_size=46264, ...}) = 0 # http://cvs.php.net/diff.php/php-src/main/php_ini.c?r1=1.133&r2=1.134&ty=u Index: php-src/main/php_ini.c diff -u php-src/main/php_ini.c:1.133 php-src/main/php_ini.c:1.134 --- php-src/main/php_ini.c:1.133 Wed Jul 27 11:16:14 2005 +++ php-src/main/php_ini.c Fri Jul 29 10:29:27 2005 @@ -16,10 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_ini.c,v 1.133 2005/07/27 15:16:14 tony2001 Exp $ */ - -/* Check CWD for php.ini */ -#define INI_CHECK_CWD +/* $Id: php_ini.c,v 1.134 2005/07/29 14:29:27 sniper Exp $ */ #include "php.h" #include "ext/standard/info.h" @@ -261,11 +258,10 @@ */ int php_init_config() { - char *env_location, *php_ini_search_path; - char *binary_location; + char *php_ini_search_path = NULL; int safe_mode_state; char *open_basedir; - int free_ini_search_path=0; + int free_ini_search_path = 0; zend_file_handle fh; struct stat sb; char ini_file[MAXPATHLEN]; @@ -290,20 +286,27 @@ safe_mode_state = PG(safe_mode); open_basedir = PG(open_basedir); - env_location = getenv("PHPRC"); - if (!env_location) { - env_location = ""; - } if (sapi_module.php_ini_path_override) { php_ini_search_path = sapi_module.php_ini_path_override; free_ini_search_path = 0; - } else { + } else if (!sapi_module.php_ini_ignore) { char *default_location; + char *env_location; + char *binary_location; static const char paths_separator[] = { ZEND_PATHS_SEPARATOR, 0 }; #ifdef PHP_WIN32 char *reg_location; #endif + env_location = getenv("PHPRC"); + if (!env_location) { + env_location = ""; + } + + /* + * Prepare search path + */ + php_ini_search_path = (char *) emalloc(MAXPATHLEN * 4 + strlen(env_location) + 3 + 1); free_ini_search_path = 1; php_ini_search_path[0] = 0; @@ -311,7 +314,7 @@ #ifdef PHP_WIN32 /* Add registry location */ reg_location = GetIniPathFromRegistry(); - if(reg_location != NULL) { + if (reg_location != NULL) { if (*php_ini_search_path) { strcat(php_ini_search_path, paths_separator); } @@ -319,9 +322,6 @@ efree(reg_location); } #endif - /* - * Prepare search path - */ /* Add environment location */ if (env_location[0]) { @@ -331,15 +331,13 @@ strcat(php_ini_search_path, env_location); } - /* Add cwd */ -#ifdef INI_CHECK_CWD - if (strcmp(sapi_module.name, "cli") != 0) { + /* Add cwd (only with CLI) */ + if (strcmp(sapi_module.name, "cli") == 0) { if (*php_ini_search_path) { strcat(php_ini_search_path, paths_separator); } strcat(php_ini_search_path, "."); } -#endif /* Add binary directory */ #ifdef PHP_WIN32
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php