[packages/php] update php-sapi-ini-file.patch for php7 apis

glen glen at pld-linux.org
Tue Nov 10 23:28:28 CET 2015


commit b002612e68723db1c98a775b8f45528ef0947d0d
Author: Elan Ruusamäe <glen at delfi.ee>
Date:   Wed Nov 11 00:25:58 2015 +0200

    update php-sapi-ini-file.patch for php7 apis
    
    probably also fixes cause of reverts like:
    7f8058c1512b8d62d0871be36f02e7d53d3e56fe
    cc3bd1739d031ba0755fde69f0737b92a27f557f
    
    reported as bug:
    https://bugs.launchpad.net/pld-linux/+bug/1504026
    
    altho php7 was crashing due tzdata patch really, which was fixed in 909e921

 php-sapi-ini-file.patch | 65 +++++++++++++++++++++++++++++++------------------
 1 file changed, 41 insertions(+), 24 deletions(-)
---
diff --git a/php-sapi-ini-file.patch b/php-sapi-ini-file.patch
index 3d0250e..d18142a 100644
--- a/php-sapi-ini-file.patch
+++ b/php-sapi-ini-file.patch
@@ -1,6 +1,11 @@
---- php-7.0.0beta1/main/php_ini.c~	2015-07-13 16:04:48.000000000 +0300
-+++ php-7.0.0beta1/main/php_ini.c	2015-07-13 16:10:07.496198519 +0300
-@@ -379,12 +379,19 @@
+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 @@
  }
  /* }}} */
  
@@ -20,15 +25,15 @@
  	int php_ini_scanned_path_len;
  	char *open_basedir;
  	int free_ini_search_path = 0;
-@@ -561,8 +568,29 @@
+@@ -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;
++				fh.filename = ZSTR_VAL(opened_path);
 +
 +				// parse the ini file now
 +				PG(open_basedir) = open_basedir;
@@ -37,21 +42,18 @@
 +				open_basedir = PG(open_basedir);
 +				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;
++				php_ini_loaded_file = estrdup(fh.filename);
++				fh.filename = 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) {
  			const char *fmt = "php-%s.ini";
  			char *ini_fname;
-@@ -597,15 +597,12 @@
+@@ -568,15 +593,8 @@
  			if (fh.handle.fp) {
  				fh.filename = ZSTR_VAL(opened_path);
  			}
@@ -64,26 +66,41 @@
 -				fh.filename = ZSTR_VAL(opened_path);
 -			}
 -		}
-+			// 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) {
-@@ -597,6 +622,10 @@
+@@ -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;
 +			}
  
- 			Z_STRLEN(tmp) = strlen(fh.filename);
- 			Z_STRVAL(tmp) = zend_strndup(fh.filename, Z_STRLEN(tmp));
-@@ -630,13 +659,15 @@
+ 			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;
@@ -100,9 +117,9 @@
  		for (debpath = bufpath ; debpath ; debpath=endpath) {
  			endpath = strchr(debpath, DEFAULT_DIR_SEPARATOR);
  			if (endpath) {
-@@ -649,7 +680,7 @@
+@@ -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) {
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/php.git/commitdiff/b002612e68723db1c98a775b8f45528ef0947d0d



More information about the pld-cvs-commit mailing list