Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion ext/calendar/jewish.c
Original file line number Diff line number Diff line change
Expand Up @@ -710,7 +710,7 @@ zend_long JewishToSdn(
int yearLength;
int lengthOfAdarIAndII;

if (year <= 0 || year >= 6000 || day <= 0 || day > 30) {
if (year <= 0 || year >= INT_MAX - 1 || day <= 0 || day > 30) {
return (0);
}
switch (month) {
Expand Down
24 changes: 24 additions & 0 deletions ext/calendar/tests/gh21557.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
--TEST--
GH-21557 jewishtojd returns 0 for years >= 6000
--CREDITS--
oleibman
--EXTENSIONS--
calendar
--FILE--
<?php
for ($yh = 5995; $yh < 6005; ++$yh) {
$rh = jewishtojd(1, 1, $yh);
echo "yh=$yh rh=$rh\n";
}
?>
--EXPECT--
yh=5995 rh=2537279
yh=5996 rh=2537633
yh=5997 rh=2538016
yh=5998 rh=2538371
yh=5999 rh=2538725
yh=6000 rh=2539110
yh=6001 rh=2539463
yh=6002 rh=2539818
yh=6003 rh=2540202
yh=6004 rh=2540557
Loading