File tree 3 files changed +19
-1
lines changed
3 files changed +19
-1
lines changed Original file line number Diff line number Diff line change 2
2
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3
3
?? ??? ????, PHP 8.4.0
4
4
5
+ - Calendar:
6
+ . Fixed jdtogregorian overflow. (David Carlier)
7
+
5
8
- PDO:
6
9
. Fixed memory leak of `setFetchMode()`. (SakiTakamachi)
7
10
Original file line number Diff line number Diff line change @@ -148,11 +148,15 @@ void SdnToGregorian(
148
148
int dayOfYear ;
149
149
150
150
if (sdn <= 0 ||
151
- sdn > (LONG_MAX - 4 * GREGOR_SDN_OFFSET ) / 4 ) {
151
+ sdn > (ZEND_LONG_MAX - 4 * GREGOR_SDN_OFFSET ) / 4 ) {
152
152
goto fail ;
153
153
}
154
154
temp = (sdn + GREGOR_SDN_OFFSET ) * 4 - 1 ;
155
155
156
+ if (temp < 0 || (temp / DAYS_PER_400_YEARS ) > INT_MAX ) {
157
+ goto fail ;
158
+ }
159
+
156
160
/* Calculate the century (year/100). */
157
161
century = temp / DAYS_PER_400_YEARS ;
158
162
Original file line number Diff line number Diff line change
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
You can’t perform that action at this time.
0 commit comments