Bug #74815 crash with a combination of INI entries at startup

TS related VCWD routines depend on CWD. Thus, a premature CWD
deactivation renders the VCWD layer unusable. Same issue seems to
persist in versions < 7.2, just that the code path is actually unused so
the issue didn't show up. Still might make sense to backport this into
lower branches.
This commit is contained in:
Anatol Belski 2017-06-27 16:26:54 +02:00
parent c0be77aa75
commit e08c0ed8ce
3 changed files with 17 additions and 4 deletions

View File

@ -888,13 +888,9 @@ void zend_post_startup(void) /* {{{ */
}
free(EG(zend_constants));
virtual_cwd_deactivate();
executor_globals_ctor(executor_globals);
global_persistent_list = &EG(persistent_list);
zend_copy_ini_directives();
#else
virtual_cwd_deactivate();
#endif
}
/* }}} */

View File

@ -2359,6 +2359,8 @@ int php_module_startup(sapi_module_struct *sf, zend_module_entry *additional_mod
} zend_end_try();
}
virtual_cwd_deactivate();
sapi_deactivate();
module_startup = 0;

View File

@ -0,0 +1,15 @@
--TEST--
Bug #74815 crash with a combination of INI entries at startup
--FILE--
<?php
$php = getenv("TEST_PHP_EXECUTABLE");
echo shell_exec("$php -n -d error_log=errors.log -d error_reporting=E_ALL -d log_errors=On -d track_errors=On -v");
?>
==DONE==
--EXPECTF--
Deprecated: Directive 'track_errors' is deprecated in Unknown on line 0
%A
==DONE==