From 63e8df232025dcf80430ea6fadf18d0b574dd900 Mon Sep 17 00:00:00 2001 From: Sascha Schumann Date: Tue, 14 Dec 1999 00:01:08 +0000 Subject: [PATCH] Postpone the execution of post request startup handlers until the symbol_table is populated --- main/main.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/main/main.c b/main/main.c index 7ffc5b1b7e..cb113a4209 100644 --- a/main/main.c +++ b/main/main.c @@ -679,9 +679,15 @@ static void php_start_post_request_startup(void *data) ptr->func(ptr->userdata); } -static void php_finish_post_request_startup(PLS_D) +static void php_execute_post_request_startup(PLS_D) { zend_llist_apply(&PG(ll_post_request_startup), php_start_post_request_startup); +} + +static void php_destroy_post_request_startup(void) +{ + PLS_FETCH(); + zend_llist_destroy(&PG(ll_post_request_startup)); } @@ -765,8 +771,6 @@ int php_request_startup(CLS_D ELS_DC PLS_DC SLS_DC) zend_hash_update(&EG(symbol_table), "PHP_AUTH_PW", sizeof("PHP_AUTH_PW"), &auth_password, sizeof(zval *), NULL); } - - php_finish_post_request_startup(PLS_C); return SUCCESS; } @@ -792,6 +796,7 @@ void php_request_shutdown(void *dummy) ELS_FETCH(); SLS_FETCH(); + php_destroy_post_request_startup(); sapi_send_headers(); php_end_ob_buffering(SG(request_info).headers_only?0:1); @@ -1273,6 +1278,7 @@ PHPAPI void php_execute_script(zend_file_handle *primary_file CLS_DC ELS_DC PLS_ if (EG(main_op_array)) { zend_hash_environment(PLS_C ELS_CC SLS_CC); EG(active_op_array) = EG(main_op_array); + php_execute_post_request_startup(PLS_C); zend_execute(EG(main_op_array) ELS_CC); } } -- 2.50.1