]> granicus.if.org Git - php/commitdiff
Fixed #73124: php_ini_scanned_files()
authorjohnstevenson <john-stevenson@blueyonder.co.uk>
Thu, 16 Nov 2017 17:56:32 +0000 (17:56 +0000)
committerNikita Popov <nikita.ppv@gmail.com>
Tue, 28 Nov 2017 22:33:48 +0000 (23:33 +0100)
Additional ini files are reported using the --ini option, but not by
`php_ini_scanned_files()`, which relied on PHP_CONFIG_FILE_SCAN_DIR.

NEWS
ext/standard/info.c
ext/standard/tests/bug73124.phpt [new file with mode: 0644]

diff --git a/NEWS b/NEWS
index 095b91b81ce6ef787146273176d714a2628ad79f..6fa81006ea732d9e1d6837909aad3f351b22610e 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -33,6 +33,8 @@ PHP                                                                        NEWS
     segment fault). (Nikita)
   . Fixed bug #75409 (accept EFAULT in addition to ENOSYS as indicator 
     that getrandom() is missing). (sarciszewski)
+  . Fixed bug #73124 (php_ini_scanned_files() not reporting correctly).
+    (John Stevenson)
 
 - Zip:
   . Fixed bug #75540 (Segfault with libzip 1.3.1). (Remi)
index 76802fa84226a894bce04fde1eb7821b86ef833b..7b045b72ac0e5ee02c41db00de120d5dccc40b9c 100644 (file)
@@ -1395,7 +1395,7 @@ PHP_FUNCTION(php_ini_scanned_files)
                return;
        }
 
-       if (strlen(PHP_CONFIG_FILE_SCAN_DIR) && php_ini_scanned_files) {
+       if (php_ini_scanned_files) {
                RETURN_STRING(php_ini_scanned_files);
        } else {
                RETURN_FALSE;
diff --git a/ext/standard/tests/bug73124.phpt b/ext/standard/tests/bug73124.phpt
new file mode 100644 (file)
index 0000000..7064d65
--- /dev/null
@@ -0,0 +1,24 @@
+--TEST--
+Bug #73124 (php_ini_scanned_files relied on PHP_CONFIG_FILE_SCAN_DIR)
+--SKIPIF--
+<?php
+if (!empty(PHP_CONFIG_FILE_SCAN_DIR)) die("Skip: PHP_CONFIG_FILE_SCAN_DIR must not be available");
+?>
+--FILE--
+<?php
+    $tempDir = sys_get_temp_dir();
+    putenv('PHP_INI_SCAN_DIR='.$tempDir);
+
+    $inifile = $tempDir.DIRECTORY_SEPARATOR.'scan-dir.ini';
+    @unlink($inifile);
+    file_put_contents($inifile, "\n");
+
+    $php = getenv('TEST_PHP_EXECUTABLE');
+    passthru('"'.$php.'" -r "print_r(php_ini_scanned_files());"');
+
+    putenv('PHP_INI_SCAN_DIR=');
+    @unlink($inifile);
+?>
+--EXPECTREGEX--
+.*[\/\\]scan-dir\.ini.*|.*[\/\\]scan-dir\.ini
+Done