summaryrefslogtreecommitdiff
path: root/ext/reflection/php_reflection.c
diff options
context:
space:
mode:
authorFelipe Pena <felipe@php.net>2011-06-11 15:11:49 +0000
committerFelipe Pena <felipe@php.net>2011-06-11 15:11:49 +0000
commit9b1ba00a1ec6cbaa75591eaeeac6ae620a1b9956 (patch)
treea680d0c68cc95f681422f20543b47dbe1b4b66c4 /ext/reflection/php_reflection.c
parentc92904d1605fae4fe5ddf3737df7ec6f678c0163 (diff)
downloadphp-git-9b1ba00a1ec6cbaa75591eaeeac6ae620a1b9956.tar.gz
- Missing fix for bug #54347
Diffstat (limited to 'ext/reflection/php_reflection.c')
-rw-r--r--ext/reflection/php_reflection.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/ext/reflection/php_reflection.c b/ext/reflection/php_reflection.c
index 76a2455d2f..3fa0fe258a 100644
--- a/ext/reflection/php_reflection.c
+++ b/ext/reflection/php_reflection.c
@@ -4854,16 +4854,21 @@ ZEND_METHOD(reflection_extension, getFunctions)
/* Is there a better way of doing this? */
while (func->fname) {
- if (zend_hash_find(EG(function_table), func->fname, strlen(func->fname) + 1, (void**) &fptr) == FAILURE) {
+ int fname_len = strlen(func->fname);
+ char *lc_name = zend_str_tolower_dup(func->fname, fname_len);
+
+ if (zend_hash_find(EG(function_table), lc_name, fname_len + 1, (void**) &fptr) == FAILURE) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Internal error: Cannot find extension function %s in global function table", func->fname);
func++;
+ efree(lc_name);
continue;
}
ALLOC_ZVAL(function);
reflection_function_factory(fptr, NULL, function TSRMLS_CC);
- add_assoc_zval_ex(return_value, func->fname, strlen(func->fname)+1, function);
+ add_assoc_zval_ex(return_value, func->fname, fname_len+1, function);
func++;
+ efree(lc_name);
}
}
}