summaryrefslogtreecommitdiff
path: root/Zend/zend_API.c
diff options
context:
space:
mode:
authorXinchen Hui <laruence@php.net>2014-10-31 17:32:23 +0800
committerXinchen Hui <laruence@php.net>2014-10-31 17:32:23 +0800
commitd9d181e5ad41128a97a6e01d14fb766ff7bf31a8 (patch)
tree1c8bd5be9c8b0ba70fd4c0a4d0651b8e16e20739 /Zend/zend_API.c
parent9e1da42af18265d007b5246f01895d3cafc78939 (diff)
downloadphp-git-d9d181e5ad41128a97a6e01d14fb766ff7bf31a8.tar.gz
Fixed Bug #68104 (Segfault while pre-evaluating a disabled function)
Diffstat (limited to 'Zend/zend_API.c')
-rw-r--r--Zend/zend_API.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/Zend/zend_API.c b/Zend/zend_API.c
index 8472cd7ab1..a465721f1f 100644
--- a/Zend/zend_API.c
+++ b/Zend/zend_API.c
@@ -2635,18 +2635,15 @@ ZEND_API ZEND_FUNCTION(display_disabled_function)
}
/* }}} */
-static zend_function_entry disabled_function[] = {
- ZEND_FE(display_disabled_function, NULL)
- ZEND_FE_END
-};
-
ZEND_API int zend_disable_function(char *function_name, uint function_name_length TSRMLS_DC) /* {{{ */
{
- if (zend_hash_del(CG(function_table), function_name, function_name_length+1)==FAILURE) {
- return FAILURE;
+ zend_internal_function *func;
+ if (zend_hash_find(CG(function_table), function_name, function_name_length+1, (void **)&func)==SUCCESS) {
+ func->arg_info = NULL;
+ func->handler = ZEND_FN(display_disabled_function);
+ return SUCCESS;
}
- disabled_function[0].fname = function_name;
- return zend_register_functions(NULL, disabled_function, CG(function_table), MODULE_PERSISTENT TSRMLS_CC);
+ return FAILURE;
}
/* }}} */