diff options
author | Felipe Pena <felipe@php.net> | 2010-05-14 23:48:03 +0000 |
---|---|---|
committer | Felipe Pena <felipe@php.net> | 2010-05-14 23:48:03 +0000 |
commit | c9fc939be0dd02679b44dc419b2bcbccb39a2365 (patch) | |
tree | a4105e99d48274444a52bcb1c82aaa1dffbd0113 | |
parent | e3be1e0bead65f0ac086b7cc9138d2ef4c195984 (diff) | |
download | php-git-c9fc939be0dd02679b44dc419b2bcbccb39a2365.tar.gz |
- Fixed bug #51827 (Bad warning when register_shutdown_function called with wrong num of parameters)
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | Zend/tests/bug51827.phpt | 19 | ||||
-rw-r--r-- | Zend/zend_API.c | 6 |
3 files changed, 24 insertions, 3 deletions
@@ -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 index 0000000000..0834749454 --- /dev/null +++ b/Zend/tests/bug51827.phpt @@ -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 diff --git a/Zend/zend_API.c b/Zend/zend_API.c index 49464705da..f8ce293210 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -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", |