Fix #70245: strtotime does not emit warning when 2nd parameter is object or string
authorChristoph M. Becker <cmb@php.net>
Wed, 12 Aug 2015 17:01:04 +0000 (19:01 +0200)
committerChristoph M. Becker <cmb@php.net>
Wed, 12 Aug 2015 17:01:04 +0000 (19:01 +0200)
Caused by a refactoring strtotime() called
zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ...) instead of
zend_parse_parameters().

ext/date/php_date.c
ext/date/tests/bug70245.phpt [new file with mode: 0644]

index 52ce4b7ce8ca91abf3a65e534d4bd2c744b06f71..eeaed2b660361874aeff2825a9e69fe3279f0e82 100644 (file)
@@ -1461,7 +1461,7 @@ PHP_FUNCTION(strtotime)
        timelib_time *t, *now;
        timelib_tzinfo *tzi;
 
-       if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS(), "s|l", &times, &time_len, &preset_ts) == FAILURE || !time_len) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS(), "s|l", &times, &time_len, &preset_ts) == FAILURE || !time_len) {
                RETURN_FALSE;
        }
 
diff --git a/ext/date/tests/bug70245.phpt b/ext/date/tests/bug70245.phpt
new file mode 100644 (file)
index 0000000..4bf6256
--- /dev/null
@@ -0,0 +1,10 @@
+--TEST--
+Bug #70245 (strtotime does not emit warning when 2nd parameter is object or string)
+--FILE--
+<?php
+$d = new DateTime('2011-01-15 00:00:00');
+var_dump(strtotime('-1 month', $d));
+?>
+--EXPECTF--
+Warning: strtotime() expects parameter 2 to be integer, object given in %sbug70245.php on line %d
+bool(false)