X-Git-Url: https://git.tld-linux.org/?p=packages%2Fphp.git;a=blobdiff_plain;f=php-sapi-ini-file.patch;h=d18142ab802495cad128c0668fc049f9a583ca17;hp=7dab0cc200565d0b5252ce694e176392803ca9f0;hb=dccfdb642699a3ed67e7237de27992afdee1f86d;hpb=a73ccdcf1739689ea6a2918333f08d561883f3ff diff --git a/php-sapi-ini-file.patch b/php-sapi-ini-file.patch index 7dab0cc..d18142a 100644 --- a/php-sapi-ini-file.patch +++ b/php-sapi-ini-file.patch @@ -1,6 +1,11 @@ ---- php-5.4.0RC3/main/php_ini.c~ 2011-12-10 03:35:27.000000000 +0200 -+++ php-5.4.0RC3/main/php_ini.c 2011-12-10 03:36:08.930154336 +0200 -@@ -358,6 +358,11 @@ +to test which is main php.ini: +$ php -r 'var_dump(array(get_cfg_var("cfg_file_path"),php_ini_loaded_file()));' + +https://github.com/pld-linux/php/commit/762ec2e + +--- php-7.0.0RC6.orig/main/php_ini.c 2015-11-10 23:58:52.227101032 +0200 ++++ php-7.0.0RC6/main/php_ini.c 2015-11-11 00:01:43.502674750 +0200 +@@ -375,12 +375,19 @@ } /* }}} */ @@ -11,48 +16,91 @@ + /* {{{ php_init_config */ - int php_init_config(TSRMLS_D) -@@ -480,6 +485,24 @@ + int php_init_config(void) + { + char *php_ini_file_name = NULL; + char *php_ini_search_path = NULL; ++ // value for php_ini_loaded_file() to be stored into php_ini_opened_path ++ char *php_ini_loaded_file = NULL; + int php_ini_scanned_path_len; + char *open_basedir; + int free_ini_search_path = 0; +@@ -557,8 +564,26 @@ } } } + /* Search (global) php.ini file in search path */ + if (!fh.handle.fp) { -+ fh.handle.fp = php_fopen_with_path("php.ini", "r", php_ini_search_path, &php_ini_opened_path TSRMLS_CC); ++ fh.handle.fp = php_fopen_with_path("php.ini", "r", php_ini_search_path, &opened_path); + if (fh.handle.fp) { -+ fh.filename = php_ini_opened_path; -+ //PG(safe_mode) = safe_mode_state; ++ fh.filename = ZSTR_VAL(opened_path); ++ ++ // parse the ini file now + PG(open_basedir) = open_basedir; + fh.type = ZEND_HANDLE_FP; + zend_parse_ini_file(&fh, 1, ZEND_INI_SCANNER_NORMAL, (zend_ini_parser_cb_t) php_ini_parser_cb, &configuration_hash TSRMLS_CC); -+ //safe_mode_state = PG(safe_mode); + open_basedir = PG(open_basedir); -+ //PG(safe_mode) = 0; + PG(open_basedir) = NULL; + fh.handle.fp = NULL; -+ efree(php_ini_opened_path); -+ fh.filename = php_ini_opened_path = NULL; ++ ++ php_ini_loaded_file = estrdup(fh.filename); ++ fh.filename = NULL; + } + } - /* Otherwise search for php-%sapi-module-name%.ini file in search path */ +- /* Otherwise search for php-%sapi-module-name%.ini file in search path */ ++ /* Also search for php-%sapi-module-name%.ini file in search path */ if (!fh.handle.fp) { -@@ -492,14 +515,6 @@ - fh.filename = php_ini_opened_path; + const char *fmt = "php-%s.ini"; + char *ini_fname; +@@ -568,15 +593,8 @@ + if (fh.handle.fp) { + fh.filename = ZSTR_VAL(opened_path); } - } -- +- } + - /* If still no ini file found, search for php.ini file in search path */ - if (!fh.handle.fp) { -- fh.handle.fp = php_fopen_with_path("php.ini", "r", php_ini_search_path, &php_ini_opened_path TSRMLS_CC); +- fh.handle.fp = php_fopen_with_path("php.ini", "r", php_ini_search_path, &opened_path); - if (fh.handle.fp) { -- fh.filename = php_ini_opened_path; +- fh.filename = ZSTR_VAL(opened_path); - } - } ++ } } if (free_ini_search_path) { -@@ -645,13 +645,15 @@ int php_init_config(TSRMLS_D) +@@ -593,14 +611,28 @@ + + { + zval tmp; ++ // use main php.ini if loaded ++ // see https://github.com/pld-linux/php/commit/762ec2e ++ // test with: ++ // php -r 'var_dump(array(get_cfg_var("cfg_file_path"),php_ini_loaded_file()));' ++ if (php_ini_loaded_file) { ++ if (fh.filename) { ++ efree((char *)fh.filename); ++ } ++ fh.filename = php_ini_loaded_file; ++ } + + ZVAL_NEW_STR(&tmp, zend_string_init(fh.filename, strlen(fh.filename), 1)); + zend_hash_str_update(&configuration_hash, "cfg_file_path", sizeof("cfg_file_path")-1, &tmp); + if (opened_path) { + zend_string_release(opened_path); +- } else { ++ } ++ ++ if (fh.filename) { + efree((char *)fh.filename); ++ fh.filename = NULL; + } ++ + php_ini_opened_path = zend_strndup(Z_STRVAL(tmp), Z_STRLEN(tmp)); + } + } +@@ -624,13 +656,15 @@ zend_llist scanned_ini_list; zend_llist_element *element; int l, total_l = 0; @@ -69,13 +117,12 @@ for (debpath = bufpath ; debpath ; debpath=endpath) { endpath = strchr(debpath, DEFAULT_DIR_SEPARATOR); if (endpath) { -@@ -664,7 +666,7 @@ int php_init_config(TSRMLS_D) +@@ -643,7 +677,7 @@ } - lenpath = strlen(debpath); + lenpath = (int)strlen(debpath); - if (lenpath > 0 && (ndir = php_scandir(debpath, &namelist, 0, php_alphasort)) > 0) { + if (lenpath > 0 && (ndir = php_scandir(debpath, &namelist, 0, php_csort)) > 0) { for (i = 0; i < ndir; i++) { -