From 5b85234b378668d8ccb5101bde3c3a1a3ca9d238 Mon Sep 17 00:00:00 2001 From: Felipe Pena Date: Wed, 23 Mar 2011 01:22:18 +0000 Subject: [PATCH] - Fixed bug #54283 (new DatePeriod(NULL) causes crash) --- NEWS | 1 + ext/date/php_date.c | 2 +- ext/date/tests/bug54283.phpt | 14 ++++++++++++++ 3 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 ext/date/tests/bug54283.phpt diff --git a/NEWS b/NEWS index 5c67a49096..5d0c05338e 100644 --- a/NEWS +++ b/NEWS @@ -13,6 +13,7 @@ PHP NEWS . Fixed bug #54340 (DateTime::add() method bug). (Adam) . Fixed bug #54316 (DateTime::createFromFormat does not handle trailing '|' correctly). (Adam) + . Fixed bug #54283 (new DatePeriod(NULL) causes crash). (Felipe) - DBA extension: . Fixed bug #54242 (dba_insert returns true if key already exists). (Felipe) diff --git a/ext/date/php_date.c b/ext/date/php_date.c index 31470a5eec..01e3c3318f 100644 --- a/ext/date/php_date.c +++ b/ext/date/php_date.c @@ -3767,7 +3767,7 @@ PHP_METHOD(DatePeriod, __construct) dpobj = zend_object_store_get_object(getThis() TSRMLS_CC); dpobj->current = NULL; - if (isostr_len) { + if (isostr) { date_period_initialize(&(dpobj->start), &(dpobj->end), &(dpobj->interval), &recurrences, isostr, isostr_len TSRMLS_CC); if (dpobj->start == NULL) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "The ISO interval '%s' did not contain a start date.", isostr); diff --git a/ext/date/tests/bug54283.phpt b/ext/date/tests/bug54283.phpt new file mode 100644 index 0000000000..780d0fa762 --- /dev/null +++ b/ext/date/tests/bug54283.phpt @@ -0,0 +1,14 @@ +--TEST-- +Bug #54283 (new DatePeriod(NULL) causes crash) +--FILE-- +getMessage()); +} + +?> +--EXPECTF-- +string(51) "DatePeriod::__construct(): Unknown or bad format ()" -- 2.50.1