]> git.pld-linux.org Git - packages/php.git/blobdiff - php-sapi-ini-file.patch
up to 8.2.9 (fixes (CVE-2023-3823 CVE-2023-3824)
[packages/php.git] / php-sapi-ini-file.patch
index 6c9dcf4a598befa2e9a3d3887516ac4c2b2dee3d..5da800a8dd6e25554fc8111f66d68fd78fd53683 100644 (file)
@@ -1,24 +1,44 @@
+The ini loading order is in PLD (as of 7.4.0beta2):
+- openat(AT_FDCWD, "/etc/php74/php-cli.ini", O_RDONLY) = -1 ENOENT (No such file or directory)
+- openat(AT_FDCWD, "/etc/php74/php.ini", O_RDONLY) = 4
+- openat(AT_FDCWD, "/etc/php74/conf.d", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_CLOEXEC|O_DIRECTORY) = 4
+- openat(AT_FDCWD, "/etc/php74/conf.d/00_curl.ini", O_RDONLY) = 4
+- openat(AT_FDCWD, "/etc/php74/conf.d/00_json.ini", O_RDONLY) = 4
+- openat(AT_FDCWD, "/etc/php74/conf.d/00_opcache.ini", O_RDONLY) = 4
+- openat(AT_FDCWD, "/etc/php74/conf.d/00_xml.ini", O_RDONLY) = 4
+- openat(AT_FDCWD, "/etc/php74/conf.d/opcache.ini", O_RDONLY) = 4
+- openat(AT_FDCWD, "/etc/php74/conf.d/timezone.ini", O_RDONLY) = 4
+- openat(AT_FDCWD, "/etc/php74/cli.d", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_CLOEXEC|O_DIRECTORY) = 4
+- openat(AT_FDCWD, "/etc/php74/cli.d/00_readline.ini", O_RDONLY) = 4
+- openat(AT_FDCWD, "/etc/php74/cli.d/php.ini", O_RDONLY) = 4
+
+1. load php-<sapi>.ini; if exists treat as main php.ini
+2. load php.ini if php-<sapi>.ini was not found
+3. load conf.d/DD_*.ini to load extra extension and zend_extension lines
+4. load conf.d/*.ini to load extra ini settings not involving loading extension
+5. load <sapi>.d same way as conf.d
+
+This allows minimal patch, but still allowing to have main php ini and sapi specific overrides
+
 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
 
-diff --git a/main/php_ini.c b/main/php_ini.c
-index d508c13b50..2cf28eb7f5 100644
---- a/main/php_ini.c
-+++ b/main/php_ini.c
-@@ -410,6 +410,11 @@ static void php_load_zend_extension_cb(void *arg) { }
- #endif
- /* }}} */
+--- php-8.0.0rc1/main/php_ini.c~       2020-10-09 18:15:48.000000000 +0300
++++ php-8.0.0rc1/main/php_ini.c        2020-10-09 18:42:20.087488856 +0300
+@@ -65,6 +65,11 @@
+ PHPAPI char *php_ini_scanned_path=NULL;
+ PHPAPI char *php_ini_scanned_files=NULL;
  
 +static int php_csort(const struct dirent **a, const struct dirent **b)
 +{
 +      return strcmp((*a)->d_name,(*b)->d_name);
 +}
 +
- /* {{{ php_init_config
-  */
- int php_init_config(void)
+ /* {{{ php_ini_displayer_cb */
+ static ZEND_COLD void php_ini_displayer_cb(zend_ini_entry *ini_entry, int type)
+ {
 @@ -661,12 +666,14 @@ int php_init_config(void)
                zend_llist scanned_ini_list;
                zend_llist_element *element;
This page took 0.031132 seconds and 4 git commands to generate.