From 03a1fcabf31210d3f304bfacf5096ce43c2b8f93 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Sat, 4 Aug 2012 10:41:26 +0800 Subject: Fixed bug #62744 (dangling pointers made by zend_disable_class) the test will be added while commit the fix for #62737 --- Zend/zend_API.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'Zend/zend_API.c') diff --git a/Zend/zend_API.c b/Zend/zend_API.c index 6d2ccd2c69..16a940dcac 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -2342,16 +2342,16 @@ static const 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; + 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) { + if (zend_hash_find(CG(class_table), class_name, class_name_length+1, (void **)&disabled_class)==FAILURE) { return FAILURE; } - INIT_OVERLOADED_CLASS_ENTRY_EX(disabled_class, class_name, class_name_length, disabled_class_new, NULL, NULL, NULL, NULL, NULL); - disabled_class.create_object = display_disabled_class; - disabled_class.name_length = class_name_length; - zend_register_internal_class(&disabled_class TSRMLS_CC); + INIT_CLASS_ENTRY_INIT_METHODS((**disabled_class), disabled_class_new, NULL, NULL, NULL, NULL, NULL); + (*disabled_class)->create_object = display_disabled_class; + (*disabled_class)->builtin_functions = disabled_class_new; + zend_hash_clean(&((*disabled_class)->function_table)); return SUCCESS; } /* }}} */ @@ -2425,7 +2425,6 @@ static int zend_is_callable_check_class(const char *name, int name_len, zend_fca } /* }}} */ - static int zend_is_callable_check_func(int check_flags, zval *callable, zend_fcall_info_cache *fcc, int strict_class, char **error TSRMLS_DC) /* {{{ */ { zend_class_entry *ce_org = fcc->calling_scope; -- cgit v1.2.1 From f4a315fce2658a5338486e17ee11d77bd3dcb14b Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Sat, 4 Aug 2012 11:03:21 +0800 Subject: This becomes useless, since we have set that in the INIT macro --- Zend/zend_API.c | 1 - 1 file changed, 1 deletion(-) (limited to 'Zend/zend_API.c') diff --git a/Zend/zend_API.c b/Zend/zend_API.c index 16a940dcac..56182138a8 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -2350,7 +2350,6 @@ ZEND_API int zend_disable_class(char *class_name, uint class_name_length TSRMLS_ } INIT_CLASS_ENTRY_INIT_METHODS((**disabled_class), disabled_class_new, NULL, NULL, NULL, NULL, NULL); (*disabled_class)->create_object = display_disabled_class; - (*disabled_class)->builtin_functions = disabled_class_new; zend_hash_clean(&((*disabled_class)->function_table)); return SUCCESS; } -- cgit v1.2.1 From 001966c754f67f36871507e70e2ec1af5a9816bd Mon Sep 17 00:00:00 2001 From: Felipe Pena Date: Sun, 19 Aug 2012 12:44:44 -0300 Subject: - Value stored to var is never used --- Zend/zend_API.c | 2 -- 1 file changed, 2 deletions(-) (limited to 'Zend/zend_API.c') diff --git a/Zend/zend_API.c b/Zend/zend_API.c index 56182138a8..70cf0c7af8 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -2445,11 +2445,9 @@ static int zend_is_callable_check_func(int check_flags, zval *callable, zend_fca /* Skip leading \ */ if (Z_STRVAL_P(callable)[0] == '\\') { mlen = Z_STRLEN_P(callable) - 1; - mname = Z_STRVAL_P(callable) + 1; lmname = zend_str_tolower_dup(Z_STRVAL_P(callable) + 1, mlen); } else { mlen = Z_STRLEN_P(callable); - mname = Z_STRVAL_P(callable); lmname = zend_str_tolower_dup(Z_STRVAL_P(callable), mlen); } /* Check if function with given name exists. -- cgit v1.2.1 From 22f55d56659d31a3546556dd39f3833af6d1fa3d Mon Sep 17 00:00:00 2001 From: Anatoliy Belsky Date: Wed, 22 Aug 2012 11:43:12 +0200 Subject: Fixed bug #62313 Zend\tests\errmsg_021.phpt fails --- Zend/zend_API.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'Zend/zend_API.c') diff --git a/Zend/zend_API.c b/Zend/zend_API.c index 65d9779534..a231415547 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -2531,6 +2531,9 @@ ZEND_API int zend_disable_function(char *function_name, uint function_name_lengt } /* }}} */ +#ifdef ZEND_WIN32 +#pragma optimize("", off) +#endif static zend_object_value display_disabled_class(zend_class_entry *class_type TSRMLS_DC) /* {{{ */ { zend_object_value retval; @@ -2539,6 +2542,9 @@ static zend_object_value display_disabled_class(zend_class_entry *class_type TSR zend_error(E_WARNING, "%s() has been disabled for security reasons", class_type->name); return retval; } +#ifdef ZEND_WIN32 +#pragma optimize("", on) +#endif /* }}} */ static const zend_function_entry disabled_class_new[] = { -- cgit v1.2.1