Skip to content

Commit 3942972

Browse files
committed
Merge branch 'PHP-8.4'
2 parents 91eda57 + a0c7550 commit 3942972

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

ext/calendar/gregor.c

+5-1
Original file line numberDiff line numberDiff line change
@@ -148,11 +148,15 @@ void SdnToGregorian(
148148
int dayOfYear;
149149

150150
if (sdn <= 0 ||
151-
sdn > (LONG_MAX - 4 * GREGOR_SDN_OFFSET) / 4) {
151+
sdn > (ZEND_LONG_MAX - 4 * GREGOR_SDN_OFFSET) / 4) {
152152
goto fail;
153153
}
154154
temp = (sdn + GREGOR_SDN_OFFSET) * 4 - 1;
155155

156+
if (temp < 0 || (temp / DAYS_PER_400_YEARS) > INT_MAX) {
157+
goto fail;
158+
}
159+
156160
/* Calculate the century (year/100). */
157161
century = temp / DAYS_PER_400_YEARS;
158162

ext/calendar/tests/gh16235.phpt

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
--TEST--
2+
GH-16235 (jdtogregorian overflow on argument)
3+
--EXTENSIONS--
4+
calendar
5+
--FILE--
6+
<?php
7+
jdtogregorian(536838867);
8+
echo "DONE";
9+
?>
10+
--EXPECT--
11+
DONE

0 commit comments

Comments
 (0)