mirror of
https://github.com/php/php-src.git
synced 2024-11-28 04:14:26 +08:00
Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3: Integer overflow in SndToJewish leads to php hang AT least in (inputDay is long, metonicCycle is int): metonicCycle = (inputDay + 310) / 6940;
This commit is contained in:
commit
646ebc2cb9
@ -272,6 +272,7 @@
|
||||
#define HALAKIM_PER_METONIC_CYCLE (HALAKIM_PER_LUNAR_CYCLE * (12 * 19 + 7))
|
||||
|
||||
#define JEWISH_SDN_OFFSET 347997
|
||||
#define JEWISH_SDN_MAX 38245310 /* year 103759, 100000 A.D. */
|
||||
#define NEW_MOON_OF_CREATION 31524
|
||||
|
||||
#define SUNDAY 0
|
||||
@ -519,7 +520,7 @@ void SdnToJewish(
|
||||
int tishri1After;
|
||||
int yearLength;
|
||||
|
||||
if (sdn <= JEWISH_SDN_OFFSET) {
|
||||
if (sdn <= JEWISH_SDN_OFFSET || sdn > JEWISH_SDN_MAX) {
|
||||
*pYear = 0;
|
||||
*pMonth = 0;
|
||||
*pDay = 0;
|
||||
|
18
ext/calendar/tests/jdtojewish64.phpt
Normal file
18
ext/calendar/tests/jdtojewish64.phpt
Normal file
@ -0,0 +1,18 @@
|
||||
--TEST--
|
||||
Integer overflow in SndToJewish leads to php hang
|
||||
--SKIPIF--
|
||||
<?php
|
||||
include 'skipif.inc';
|
||||
if (PHP_INT_SIZE == 4) {
|
||||
die("skip this test is for 64bit platform only");
|
||||
}
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
$a = array(38245310, 38245311, 9223372036854743639);
|
||||
|
||||
foreach ($a as $x) var_dump(jdtojewish($x));
|
||||
--EXPECTF--
|
||||
string(11) "2/22/103759"
|
||||
string(5) "0/0/0"
|
||||
string(5) "0/0/0"
|
Loading…
Reference in New Issue
Block a user