Browse Source

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.
pull/2599/head
Anatol Belski 9 years ago
parent
commit
e08c0ed8ce
  1. 4
      Zend/zend.c
  2. 2
      main/main.c
  3. 15
      tests/output/bug74815.phpt

4
Zend/zend.c

@ -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
}
/* }}} */

2
main/main.c

@ -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;

15
tests/output/bug74815.phpt

@ -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==
Loading…
Cancel
Save