From: Antony Dovgal Date: Wed, 20 Dec 2006 23:00:54 +0000 (+0000) Subject: fix leak in zend_disable_class() X-Git-Tag: RELEASE_1_0_0RC1~597 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=722ad46c388616e0dae1ff5e18985132fc165cfa;p=php fix leak in zend_disable_class() --- diff --git a/Zend/zend_API.c b/Zend/zend_API.c index 7aad13e0b6..318fe5ffd3 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -2462,18 +2462,17 @@ static zend_function_entry disabled_class_new[] = { ZEND_API int zend_disable_class(char *class_name, uint class_name_length TSRMLS_DC) { - zend_class_entry *disabled_class; - disabled_class = (zend_class_entry *) emalloc(sizeof(zend_class_entry)); + zend_class_entry disabled_class; zend_str_tolower(class_name, class_name_length); if (zend_hash_del(CG(class_table), class_name, class_name_length+1)==FAILURE) { return FAILURE; } - INIT_CLASS_ENTRY((*disabled_class), class_name, disabled_class_new); - disabled_class->create_object = display_disabled_class; - disabled_class->name_length = class_name_length; - zend_register_internal_class(disabled_class TSRMLS_CC); - return 1; + INIT_CLASS_ENTRY(disabled_class, class_name, disabled_class_new); + disabled_class.create_object = display_disabled_class; + disabled_class.name_length = class_name_length; + zend_register_internal_class(&disabled_class TSRMLS_CC); + return SUCCESS; } static int zend_is_callable_check_func(int check_flags, zval ***zobj_ptr_ptr, zend_class_entry *ce_org, zval *callable, zend_class_entry **ce_ptr, zend_function **fptr_ptr TSRMLS_DC)