]> 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:51 +0000 (12:18 +0000)
committerDmitry Stogov <dmitry@php.net>
Wed, 25 Jun 2008 12:18:51 +0000 (12:18 +0000)
main/main.c
main/php_ticks.c
main/php_ticks.h

index fecbfd3d5c6ad722c8ebc79ce91438599e9fb479..3582d41a508400f47f16992155735a3a26474c29 100644 (file)
@@ -1577,6 +1577,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 __destruct() functions */
        zend_try {
                zend_call_destructors(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);