From 1b8cfaf23dc6c2e89f502bdc3e9da7e5abb2488b Mon Sep 17 00:00:00 2001 From: Joshua Rogers Date: Mon, 19 Jan 2015 21:31:15 +1100 Subject: [PATCH] Fix integer overflow in calender. Fix int overflows in conversation functions for calendar. Add tests for the overflows. --- ext/calendar/calendar.c | 2 +- ext/calendar/gregor.c | 2 +- ext/calendar/julian.c | 2 +- ext/calendar/tests/gregoriantojd_overflow.phpt | 10 ++++++++++ ext/calendar/tests/juliantojd_overflow.phpt | 10 ++++++++++ 5 files changed, 23 insertions(+), 3 deletions(-) create mode 100644 ext/calendar/tests/gregoriantojd_overflow.phpt create mode 100644 ext/calendar/tests/juliantojd_overflow.phpt diff --git a/ext/calendar/calendar.c b/ext/calendar/calendar.c index 40ae249cda..47f2c1dd54 100644 --- a/ext/calendar/calendar.c +++ b/ext/calendar/calendar.c @@ -12,7 +12,7 @@ | obtain it through the world-wide-web, please send a note to | | license@php.net so we can mail you a copy immediately. | +----------------------------------------------------------------------+ - | Authors: Shane Caraveo | + | Authors: Shane Caraveo | | Colin Viebrock | | Hartmut Holzgraefe | | Wez Furlong | diff --git a/ext/calendar/gregor.c b/ext/calendar/gregor.c index 069fe6eb5a..4c91fa8d54 100644 --- a/ext/calendar/gregor.c +++ b/ext/calendar/gregor.c @@ -195,7 +195,7 @@ zend_long GregorianToSdn( int inputMonth, int inputDay) { - int year; + zend_long year; int month; /* check for invalid dates */ diff --git a/ext/calendar/julian.c b/ext/calendar/julian.c index 904727ff04..6ab0854c3b 100644 --- a/ext/calendar/julian.c +++ b/ext/calendar/julian.c @@ -217,7 +217,7 @@ zend_long JulianToSdn( int inputMonth, int inputDay) { - int year; + zend_long year; int month; /* check for invalid dates */ diff --git a/ext/calendar/tests/gregoriantojd_overflow.phpt b/ext/calendar/tests/gregoriantojd_overflow.phpt new file mode 100644 index 0000000000..a189cc80c3 --- /dev/null +++ b/ext/calendar/tests/gregoriantojd_overflow.phpt @@ -0,0 +1,10 @@ +--TEST-- +gregoriantojd() +--SKIPIF-- + +--FILE-- + +--EXPECT-- +2193176185 diff --git a/ext/calendar/tests/juliantojd_overflow.phpt b/ext/calendar/tests/juliantojd_overflow.phpt new file mode 100644 index 0000000000..f2f5aa182d --- /dev/null +++ b/ext/calendar/tests/juliantojd_overflow.phpt @@ -0,0 +1,10 @@ +--TEST-- +juliantojd() +--SKIPIF-- + +--FILE-- + +--EXPECT-- +622764916319 -- 2.50.0