tony2001 Wed Apr 25 11:19:10 2007 UTC Modified files: /php-src/main SAPI.c Log: MFB: Fix crashes when SAPI handlers are overriden in dl()-ed extensions http://cvs.php.net/viewvc.cgi/php-src/main/SAPI.c?r1=1.222&r2=1.223&diff_format=u Index: php-src/main/SAPI.c diff -u php-src/main/SAPI.c:1.222 php-src/main/SAPI.c:1.223 --- php-src/main/SAPI.c:1.222 Mon Apr 16 09:43:52 2007 +++ php-src/main/SAPI.c Wed Apr 25 11:19:10 2007 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: SAPI.c,v 1.222 2007/04/16 09:43:52 dmitry Exp $ */ +/* $Id: SAPI.c,v 1.223 2007/04/25 11:19:10 tony2001 Exp $ */ #include <ctype.h> #include <sys/stat.h> @@ -794,6 +794,10 @@ SAPI_API int sapi_register_post_entry(sapi_post_entry *post_entry TSRMLS_DC) { + if (EG(in_execution)) { + return FAILURE; + } + return zend_hash_add(&SG(known_post_content_types), post_entry->content_type, post_entry->content_type_len+1, (void *) post_entry, sizeof(sapi_post_entry), NULL); @@ -801,6 +805,9 @@ SAPI_API void sapi_unregister_post_entry(sapi_post_entry *post_entry TSRMLS_DC) { + if (EG(in_execution)) { + return; + } zend_hash_del(&SG(known_post_content_types), post_entry->content_type, post_entry->content_type_len+1); } @@ -808,6 +815,10 @@ SAPI_API int sapi_register_default_post_reader(void (*default_post_reader)(TSRMLS_D)) { + TSRMLS_FETCH(); + if (EG(in_execution)) { + return FAILURE; + } sapi_module.default_post_reader = default_post_reader; return SUCCESS; } @@ -815,12 +826,20 @@ SAPI_API int sapi_register_treat_data(void (*treat_data)(int arg, char *str, zval *destArray TSRMLS_DC)) { + TSRMLS_FETCH(); + if (EG(in_execution)) { + return FAILURE; + } sapi_module.treat_data = treat_data; return SUCCESS; } SAPI_API int sapi_register_input_filter(unsigned int (*input_filter)(int arg, char *var, char **val, unsigned int val_len, unsigned int *new_val_len TSRMLS_DC)) { + TSRMLS_FETCH(); + if (EG(in_execution)) { + return FAILURE; + } sapi_module.input_filter = input_filter; return SUCCESS; }
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php