---- 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 @@
+--- php-7.0/main/php_ini.c~ 2015-05-21 22:56:59.000000000 +0300
++++ php-7.0/main/php_ini.c 2015-05-21 23:01:21.580419532 +0300
+@@ -379,12 +379,19 @@
}
/* }}} */
+
/* {{{ 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;
+@@ -561,8 +568,29 @@
}
}
}
+ fh.handle.fp = php_fopen_with_path("php.ini", "r", php_ini_search_path, &php_ini_opened_path TSRMLS_CC);
+ if (fh.handle.fp) {
+ fh.filename = php_ini_opened_path;
-+ //PG(safe_mode) = safe_mode_state;
++
++ // 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;
+
+- /* Otherwise search for php-%sapi-module-name%.ini file in search path */
++ // save this for later
++ php_ini_loaded_file = estrdup(php_ini_opened_path);
++
+ efree(php_ini_opened_path);
+ fh.filename = php_ini_opened_path = NULL;
+ }
+ }
-
- /* 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;
+@@ -594,15 +601,12 @@
+ if (fh.handle.fp) {
+ fh.filename = opened_path->val;
}
- }
--
+- }
+
- /* 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 = opened_path->val;
- }
- }
++ // restore previous value, so php_ini_loaded_file() works as expected
++ if (php_ini_loaded_file) {
++ php_ini_opened_path = php_ini_loaded_file;
++ }
++ }
}
if (free_ini_search_path) {
-@@ -645,13 +645,15 @@ int php_init_config(TSRMLS_D)
+@@ -597,6 +622,10 @@
+
+ {
+ zval tmp;
++ // use main php.ini if loaded
++ if (php_ini_loaded_file) {
++ fh.filename = php_ini_loaded_file;
++ }
+
+ Z_STRLEN(tmp) = strlen(fh.filename);
+ Z_STRVAL(tmp) = zend_strndup(fh.filename, Z_STRLEN(tmp));
+@@ -630,13 +659,15 @@
zend_llist scanned_ini_list;
zend_llist_element *element;
int l, total_l = 0;
for (debpath = bufpath ; debpath ; debpath=endpath) {
endpath = strchr(debpath, DEFAULT_DIR_SEPARATOR);
if (endpath) {
-@@ -664,7 +666,7 @@ int php_init_config(TSRMLS_D)
+@@ -649,7 +680,7 @@
}
lenpath = strlen(debpath);
for (i = 0; i < ndir; i++) {
-