]> granicus.if.org Git - php/commitdiff
MFH: fix bug #29975 (memory leaks when set_error_handler() is used inside error handler)
authorAntony Dovgal <tony2001@php.net>
Fri, 13 May 2005 23:15:21 +0000 (23:15 +0000)
committerAntony Dovgal <tony2001@php.net>
Fri, 13 May 2005 23:15:21 +0000 (23:15 +0000)
Zend/zend.c

index 0fb5c59656e09dc9f444543f37a7f75ca34fa1f5..3de0a5f6d304659a5e4a1cc50512e1a503794646 100644 (file)
@@ -1007,7 +1007,11 @@ ZEND_API void zend_error(int type, const char *format, ...)
                                memcpy(&EG(garbage), &orig_garbage, sizeof(zval*)*orig_garbage_ptr);
                        }
 
-                       EG(user_error_handler) = orig_user_error_handler;
+                       if (!EG(user_error_handler)) {
+                               EG(user_error_handler) = orig_user_error_handler;
+                       } else {
+                               zval_ptr_dtor(&orig_user_error_handler);
+                       }
 
                        efree(params);
                        zval_ptr_dtor(&z_error_message);