]> granicus.if.org Git - php/commitdiff
- Missing fix for bug #54347
authorFelipe Pena <felipe@php.net>
Sat, 11 Jun 2011 15:11:49 +0000 (15:11 +0000)
committerFelipe Pena <felipe@php.net>
Sat, 11 Jun 2011 15:11:49 +0000 (15:11 +0000)
NEWS
ext/reflection/php_reflection.c

diff --git a/NEWS b/NEWS
index ca8f75f90b6aa106e3bb1cb970cb965c24653da7..81402dc52a1292d3e60f47f3a69db551ef8fe4cd 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -156,6 +156,10 @@ PHP                                                                        NEWS
 - Phar extension:
   . Fixed bug #54395 (Phar::mount() crashes when calling with wrong parameters).
     (Felipe)
+    
+- Reflection extension:
+  . Fixed bug #54347 (reflection_extension does not lowercase module function
+    name). (Felipe, laruence at yahoo dot com dot cn)
 
 - SOAP extension:
   . Fixed bug #54312 (soap_version logic bug). (tom at samplonius dot org)
index 76a2455d2f940ce8b66de31c52ccc0cd265526b6..3fa0fe258a71fb765c9ce978bbd2abb39c3871a7 100644 (file)
@@ -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);
                }
        }
 }