. Fixed bug #71735 (Double-free in SplDoublyLinkedList::offsetSet). (Stas)
- Standard:
+ . Fixed bug #71891 (header_register_callback() and
+ register_shutdown_function()). (Laruence)
. Fixed bug #71884 (Null pointer deref (segfault) in
stream_context_get_default). (Laruence)
. Fixed bug #71837 (Wrong arrays behaviour). (Laruence)
if (PG(modules_activated)) {
zend_deactivate_modules();
+ }
+
+ if (PG(modules_activated)) {
php_free_shutdown_functions();
}
/* 5. Call all extensions RSHUTDOWN functions */
if (PG(modules_activated)) {
zend_deactivate_modules();
- php_free_shutdown_functions();
}
/* 6. Shutdown output layer (send the set HTTP headers, cleanup output handlers, etc.) */
php_output_deactivate();
} zend_end_try();
- /* 7. Destroy super-globals */
+ /* 7. Free shutdown functions */
+ if (PG(modules_activated)) {
+ php_free_shutdown_functions();
+ }
+
+ /* 8. Destroy super-globals */
zend_try {
int i;
}
} zend_end_try();
- /* 8. free request-bound globals */
+ /* 9. free request-bound globals */
php_free_request_globals();
- /* 9. Shutdown scanner/executor/compiler and restore ini entries */
+ /* 10. Shutdown scanner/executor/compiler and restore ini entries */
zend_deactivate();
- /* 10. Call all extensions post-RSHUTDOWN functions */
+ /* 11. Call all extensions post-RSHUTDOWN functions */
zend_try {
zend_post_deactivate_modules();
} zend_end_try();
- /* 11. SAPI related shutdown (free stuff) */
+ /* 12. SAPI related shutdown (free stuff) */
zend_try {
sapi_deactivate();
} zend_end_try();
- /* 12. free virtual CWD memory */
+ /* 13. free virtual CWD memory */
virtual_cwd_deactivate();
- /* 13. Destroy stream hashes */
+ /* 14. Destroy stream hashes */
zend_try {
php_shutdown_stream_hashes();
} zend_end_try();
- /* 14. Free Willy (here be crashes) */
+ /* 15. Free Willy (here be crashes) */
zend_interned_strings_restore();
zend_try {
shutdown_memory_manager(CG(unclean_shutdown) || !report_memleaks, 0);
} zend_end_try();
- /* 15. Reset max_execution_time */
+ /* 16. Reset max_execution_time */
zend_try {
zend_unset_timeout();
} zend_end_try();