]> granicus.if.org Git - php/commitdiff
Fixed bug #45352 (Segmentation fault because of tick function on second request)
authorDmitry Stogov <dmitry@php.net>
Wed, 25 Jun 2008 12:18:36 +0000 (12:18 +0000)
committerDmitry Stogov <dmitry@php.net>
Wed, 25 Jun 2008 12:18:36 +0000 (12:18 +0000)
main/main.c
main/php_ticks.c
main/php_ticks.h

index 1f656eda57372112e93969d8c84b677ab75ea829..2e083712a5cb1ec9226cbe8c60638d5931bd5f1a 100644 (file)
@@ -1472,6 +1472,8 @@ void php_request_shutdown(void *dummy)
        EG(opline_ptr) = NULL;
        EG(active_op_array) = NULL;
 
+       php_deactivate_ticks(TSRMLS_C);
+
        /* 1. Call all possible shutdown functions registered with register_shutdown_function() */
        if (PG(modules_activated)) zend_try {
                php_call_shutdown_functions(TSRMLS_C);
index c9fa5e4e9bf47ad63abc1ba87055e00827f2f219..ffc1dabf5941c586ad8d7c0c0b7d1eb00fe3bc12 100644 (file)
@@ -27,6 +27,11 @@ int php_startup_ticks(TSRMLS_D)
        return SUCCESS;
 }
 
+void php_deactivate_ticks(TSRMLS_D)
+{
+       zend_llist_clean(&PG(tick_functions));
+}
+
 void php_shutdown_ticks(TSRMLS_D)
 {
        zend_llist_destroy(&PG(tick_functions));
index d3d0ae1509fe389285158df926ee1233a70d8aea..9dc930746f4ceea440d2bfb7569bcc81a681ac44 100644 (file)
@@ -22,6 +22,7 @@
 #define PHP_TICKS_H
 
 int php_startup_ticks(TSRMLS_D);
+void php_deactivate_ticks(TSRMLS_D);
 void php_shutdown_ticks(TSRMLS_D);
 void php_run_ticks(int count);