dmitry          Wed Apr 25 08:40:07 2007 UTC

  Modified files:              (Branch: PHP_5_2)
    /php-src/main       SAPI.c 
  Log:
  Fixed crashes because of SAPI handlers overrding from inside of dl()-ed 
extensions
  
  
http://cvs.php.net/viewvc.cgi/php-src/main/SAPI.c?r1=1.202.2.7.2.10&r2=1.202.2.7.2.11&diff_format=u
Index: php-src/main/SAPI.c
diff -u php-src/main/SAPI.c:1.202.2.7.2.10 php-src/main/SAPI.c:1.202.2.7.2.11
--- php-src/main/SAPI.c:1.202.2.7.2.10  Mon Apr 16 08:09:56 2007
+++ php-src/main/SAPI.c Wed Apr 25 08:40:07 2007
@@ -18,7 +18,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: SAPI.c,v 1.202.2.7.2.10 2007/04/16 08:09:56 dmitry Exp $ */
+/* $Id: SAPI.c,v 1.202.2.7.2.11 2007/04/25 08:40:07 dmitry Exp $ */
 
 #include <ctype.h>
 #include <sys/stat.h>
@@ -861,6 +861,9 @@
 
 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);
@@ -868,6 +871,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);
 }
@@ -875,6 +881,9 @@
 
 SAPI_API int sapi_register_default_post_reader(void 
(*default_post_reader)(TSRMLS_D))
 {
+       if (EG(in_execution)) {
+               return FAILURE;
+       }
        sapi_module.default_post_reader = default_post_reader;
        return SUCCESS;
 }
@@ -882,12 +891,18 @@
 
 SAPI_API int sapi_register_treat_data(void (*treat_data)(int arg, char *str, 
zval *destArray TSRMLS_DC))
 {
+       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))
 {
+       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

Reply via email to