diff options
| author | Zeev Suraski <zeev@php.net> | 2001-07-15 17:48:50 +0000 |
|---|---|---|
| committer | Zeev Suraski <zeev@php.net> | 2001-07-15 17:48:50 +0000 |
| commit | 9bd98624510d8e6b97983cb019fcbc14ba8b5eae (patch) | |
| tree | 472706d8db4d78116eb7fa01160bd6f85b9000a0 /Zend/zend_execute_API.c | |
| parent | 553505cb61d3992bc487b423a2bb0b2e001f9a72 (diff) | |
| download | php-git-9bd98624510d8e6b97983cb019fcbc14ba8b5eae.tar.gz | |
Fix bug #10257
Diffstat (limited to 'Zend/zend_execute_API.c')
| -rw-r--r-- | Zend/zend_execute_API.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c index f59d51794d..67e2b0f12b 100644 --- a/Zend/zend_execute_API.c +++ b/Zend/zend_execute_API.c @@ -344,6 +344,7 @@ int call_user_function_ex(HashTable *function_table, zval **object_pp, zval *fun int orig_free_op1, orig_free_op2; int (*orig_unary_op)(zval *result, zval *op1); int (*orig_binary_op)(zval *result, zval *op1, zval *op2); + zval function_name_copy; ELS_FETCH(); *retval_ptr_ptr = NULL; @@ -391,11 +392,16 @@ int call_user_function_ex(HashTable *function_table, zval **object_pp, zval *fun return FAILURE; } + function_name_copy = *function_name; + zval_copy_ctor(&function_name_copy); + zend_str_tolower(function_name_copy.value.str.val, function_name_copy.value.str.len); + original_function_state_ptr = EG(function_state_ptr); - zend_str_tolower(function_name->value.str.val, function_name->value.str.len); - if (zend_hash_find(function_table, function_name->value.str.val, function_name->value.str.len+1, (void **) &function_state.function)==FAILURE) { + if (zend_hash_find(function_table, function_name_copy.value.str.val, function_name_copy.value.str.len+1, (void **) &function_state.function)==FAILURE) { + zval_dtor(&function_name_copy); return FAILURE; } + zval_dtor(&function_name_copy); for (i=0; i<param_count; i++) { zval *param; |
