]> granicus.if.org Git - php/commitdiff
Fix 'Class::method' indirect call with empty method name
authorAaron Piotrowski <aaron@trowski.com>
Fri, 26 Jun 2015 00:30:36 +0000 (19:30 -0500)
committerAaron Piotrowski <aaron@trowski.com>
Fri, 26 Jun 2015 00:37:52 +0000 (19:37 -0500)
Zend/zend_vm_def.h
Zend/zend_vm_execute.h

index 8462d950cb1669bcfab1701e087ce4e07f815a41..933be83dc75d356834edb71d0c7137bfd33f3fba 100644 (file)
@@ -3237,12 +3237,6 @@ ZEND_VM_C_LABEL(try_function_name):
                        size_t cname_length = colon - Z_STRVAL_P(function_name) - 1;
                        size_t mname_length = Z_STRLEN_P(function_name) - cname_length - (sizeof("::") - 1);
                        
-                       if (!mname_length) {
-                               zend_error(E_EXCEPTION | E_ERROR, "Call to undefined function %s()", Z_STRVAL_P(function_name));
-                               FREE_OP2();
-                               HANDLE_EXCEPTION();
-                       }
-                       
                        lcname = zend_string_init(Z_STRVAL_P(function_name), cname_length, 0);
                        
                        called_scope = zend_fetch_class_by_name(lcname, NULL, ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION);
index df9b1ed58c347bb8a4da24266659280e9188b25f..69a73467fa6c23c2a06a04e1a29f7660cdbcc213 100644 (file)
@@ -1940,12 +1940,6 @@ try_function_name:
                        size_t cname_length = colon - Z_STRVAL_P(function_name) - 1;
                        size_t mname_length = Z_STRLEN_P(function_name) - cname_length - (sizeof("::") - 1);
 
-                       if (!mname_length) {
-                               zend_error(E_EXCEPTION | E_ERROR, "Call to undefined function %s()", Z_STRVAL_P(function_name));
-
-                               HANDLE_EXCEPTION();
-                       }
-
                        lcname = zend_string_init(Z_STRVAL_P(function_name), cname_length, 0);
 
                        called_scope = zend_fetch_class_by_name(lcname, NULL, ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION);
@@ -2398,12 +2392,6 @@ try_function_name:
                        size_t cname_length = colon - Z_STRVAL_P(function_name) - 1;
                        size_t mname_length = Z_STRLEN_P(function_name) - cname_length - (sizeof("::") - 1);
 
-                       if (!mname_length) {
-                               zend_error(E_EXCEPTION | E_ERROR, "Call to undefined function %s()", Z_STRVAL_P(function_name));
-
-                               HANDLE_EXCEPTION();
-                       }
-
                        lcname = zend_string_init(Z_STRVAL_P(function_name), cname_length, 0);
 
                        called_scope = zend_fetch_class_by_name(lcname, NULL, ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION);
@@ -2657,12 +2645,6 @@ try_function_name:
                        size_t cname_length = colon - Z_STRVAL_P(function_name) - 1;
                        size_t mname_length = Z_STRLEN_P(function_name) - cname_length - (sizeof("::") - 1);
 
-                       if (!mname_length) {
-                               zend_error(E_EXCEPTION | E_ERROR, "Call to undefined function %s()", Z_STRVAL_P(function_name));
-                               zval_ptr_dtor_nogc(free_op2);
-                               HANDLE_EXCEPTION();
-                       }
-
                        lcname = zend_string_init(Z_STRVAL_P(function_name), cname_length, 0);
 
                        called_scope = zend_fetch_class_by_name(lcname, NULL, ZEND_FETCH_CLASS_DEFAULT | ZEND_FETCH_CLASS_EXCEPTION);