]> granicus.if.org Git - php/commitdiff
- Fixed bug #51827 (Bad warning when register_shutdown_function called with wrong...
authorFelipe Pena <felipe@php.net>
Fri, 14 May 2010 23:48:03 +0000 (23:48 +0000)
committerFelipe Pena <felipe@php.net>
Fri, 14 May 2010 23:48:03 +0000 (23:48 +0000)
NEWS
Zend/tests/bug51827.phpt [new file with mode: 0644]
Zend/zend_API.c

diff --git a/NEWS b/NEWS
index a7b4a6b1da66955d352babc551c3b79bd7dfb71b..0f0bf189b0fd06818ba2ba8f9594d655ac4a6ee9 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -54,6 +54,8 @@ PHP                                                                        NEWS
   requests (Fixes CVE-2010-0397, bug #51288). (Raphael Geissert)
 - Fixed 64-bit integer overflow in mhash_keygen_s2k(). (ClĂ©ment LECIGNE, Stas)
 
+- Fixed bug #51827 (Bad warning when register_shutdown_function called with
+  wrong num of parameters). (Felipe)
 - Fixed bug #51791 (constant() aborts execution when fail to check undefined
   constant). (Felipe)
 - Fixed bug #51732 (Fileinfo __construct or open does not work with NULL).
diff --git a/Zend/tests/bug51827.phpt b/Zend/tests/bug51827.phpt
new file mode 100644 (file)
index 0000000..0834749
--- /dev/null
@@ -0,0 +1,19 @@
+--TEST--
+Bug #51827 (Bad warning when register_shutdown_function called with wrong num of parameters)
+--FILE--
+<?php
+
+
+function abc() {
+       var_dump(1);
+}
+
+register_shutdown_function('timE');
+register_shutdown_function('ABC');
+register_shutdown_function('exploDe');
+
+?>
+--EXPECTF--
+int(1)
+
+Warning: explode() expects at least 2 parameters, 0 given in Unknown on line %d
index 49464705da0c313405cd2faeb9d54cf00145cb25..f8ce293210e5195c975fae99dc191774035f423a 100644 (file)
@@ -721,7 +721,7 @@ static int zend_parse_va_args(int num_args, char *type_spec, va_list *va, int fl
                                                zend_error(E_WARNING, "%s%s%s(): only one varargs specifier (* or +) is permitted",
                                                                class_name,
                                                                class_name[0] ? "::" : "",
-                                                               get_active_function_name(TSRMLS_C));
+                                                               active_function->common.function_name);
                                        }
                                        return FAILURE;
                                }
@@ -741,7 +741,7 @@ static int zend_parse_va_args(int num_args, char *type_spec, va_list *va, int fl
                                        zend_error(E_WARNING, "%s%s%s(): bad type specifier while parsing parameters",
                                                        class_name,
                                                        class_name[0] ? "::" : "",
-                                                       get_active_function_name(TSRMLS_C));
+                                                       active_function->common.function_name);
                                }
                                return FAILURE;
                }
@@ -764,7 +764,7 @@ static int zend_parse_va_args(int num_args, char *type_spec, va_list *va, int fl
                        zend_error(E_WARNING, "%s%s%s() expects %s %d parameter%s, %d given",
                                        class_name,
                                        class_name[0] ? "::" : "",
-                                       get_active_function_name(TSRMLS_C),
+                                       active_function->common.function_name,
                                        min_num_args == max_num_args ? "exactly" : num_args < min_num_args ? "at least" : "at most",
                                        num_args < min_num_args ? min_num_args : max_num_args,
                                        (num_args < min_num_args ? min_num_args : max_num_args) == 1 ? "" : "s",