diff options
author | Felipe Pena <felipe@php.net> | 2011-06-09 22:45:35 +0000 |
---|---|---|
committer | Felipe Pena <felipe@php.net> | 2011-06-09 22:45:35 +0000 |
commit | cee9b6603c243d8ac0b27a1b1dff0839e8c07fa9 (patch) | |
tree | 63c220a84d5ff60aeed90bc8cb15f720e51d3b18 /ext/reflection/php_reflection.c | |
parent | 4cd96965fbd973ef84d1d8f5f7c3a678e08832bd (diff) | |
download | php-git-cee9b6603c243d8ac0b27a1b1dff0839e8c07fa9.tar.gz |
- Fixed bug #54347 (reflection_extension does not lowercase module function name)
patch by: laruence at yahoo dot com dot cn
Diffstat (limited to 'ext/reflection/php_reflection.c')
-rw-r--r-- | ext/reflection/php_reflection.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/ext/reflection/php_reflection.c b/ext/reflection/php_reflection.c index 1df797b664..57f8f48c30 100644 --- a/ext/reflection/php_reflection.c +++ b/ext/reflection/php_reflection.c @@ -1111,13 +1111,18 @@ static void _extension_string(string *str, zend_module_entry *module, char *inde /* 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; } _function_string(str, fptr, NULL, " " TSRMLS_CC); + efree(lc_name); func++; } string_printf(str, "%s }\n", indent); |