]> granicus.if.org Git - php/commitdiff
Fix #79489: .user.ini does not inherit
authorChristoph M. Becker <cmbecker69@gmx.de>
Tue, 5 May 2020 08:36:16 +0000 (10:36 +0200)
committerChristoph M. Becker <cmbecker69@gmx.de>
Tue, 12 May 2020 09:47:47 +0000 (11:47 +0200)
On Windows, PATH_TRANSLATED may contain backslashes as well as slashes,
so we must not only check for `DEFAULT_SLASH`.

NEWS
sapi/cgi/cgi_main.c

diff --git a/NEWS b/NEWS
index 505451e4706fedd94f21f4697378cea91082d59e..af9ac57ff226e68802a737ff9685d3beac56d7f6 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -4,6 +4,7 @@ PHP                                                                        NEWS
 
 - Core:
   . Fixed bug #79566 (Private SHM is not private on Windows). (cmb)
+  . Fixed bug #79489 (.user.ini does not inherit). (cmb)
 
 - Opcache:
   . Fixed bug #79535 (PHP crashes with specific opcache.optimization_level).
index 8c8e1463d5529c5279dc4ecba19388156f6ebe2a..37f8eac6e0e8decfb46e8281ceb6bd4092daa75f 100644 (file)
@@ -843,7 +843,11 @@ static void php_cgi_ini_activate_user_config(char *path, size_t path_len, const
                if (strncmp(s1, s2, s_len) == 0) {
 #endif
                        char *ptr = s2 + doc_root_len;
+#ifdef PHP_WIN32
+                       while ((ptr = strpbrk(ptr, "\\/")) != NULL) {
+#else
                        while ((ptr = strchr(ptr, DEFAULT_SLASH)) != NULL) {
+#endif
                                *ptr = 0;
                                php_parse_user_ini_file(path, PG(user_ini_filename), entry->user_config);
                                *ptr = '/';