summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelipe Pena <felipe@php.net>2010-05-14 23:48:03 +0000
committerFelipe Pena <felipe@php.net>2010-05-14 23:48:03 +0000
commitc9fc939be0dd02679b44dc419b2bcbccb39a2365 (patch)
treea4105e99d48274444a52bcb1c82aaa1dffbd0113
parente3be1e0bead65f0ac086b7cc9138d2ef4c195984 (diff)
downloadphp-git-c9fc939be0dd02679b44dc419b2bcbccb39a2365.tar.gz
- Fixed bug #51827 (Bad warning when register_shutdown_function called with wrong num of parameters)
-rw-r--r--NEWS2
-rw-r--r--Zend/tests/bug51827.phpt19
-rw-r--r--Zend/zend_API.c6
3 files changed, 24 insertions, 3 deletions
diff --git a/NEWS b/NEWS
index a7b4a6b1da..0f0bf189b0 100644
--- 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
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",