Skip to content

Commit fde5e50

Browse files
committed
Merge branch 'PHP-8.2' into PHP-8.3
2 parents 664689a + 2d05da2 commit fde5e50

File tree

3 files changed

+30
-1
lines changed

3 files changed

+30
-1
lines changed

NEWS

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,10 @@ PHP NEWS
3636
. Fixed bug GH-15168 (stack overflow in json_encode()). (nielsdos)
3737

3838
- GD:
39-
. Fixed bug 16232 (bitshift overflow on wbmp file content reading /
39+
. Fixed bug GH-16232 (bitshift overflow on wbmp file content reading /
4040
fix backport from upstream). (David Carlier)
41+
. Fixed bug GH-12264 (overflow/underflow on imagerotate degrees value)
42+
(David Carlier)
4143

4244
- LDAP:
4345
. Fixed bug GH-16032 (Various NULL pointer dereferencements in

ext/gd/gd.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1194,6 +1194,11 @@ PHP_FUNCTION(imagerotate)
11941194
RETURN_THROWS();
11951195
}
11961196

1197+
if (degrees < (double)(INT_MIN / 100) || degrees > (double)(INT_MAX / 100)) {
1198+
zend_argument_value_error(2, "must be between %d and %d", (INT_MIN / 100), (INT_MAX / 100));
1199+
RETURN_THROWS();
1200+
}
1201+
11971202
im_src = php_gd_libgdimageptr_from_zval_p(SIM);
11981203
im_dst = gdImageRotateInterpolated(im_src, (const float)degrees, color);
11991204

ext/gd/tests/gh16260.phpt

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
--TEST--
2+
GH-16260 (Overflow/underflow on imagerotate degrees argument)
3+
--EXTENSIONS--
4+
gd
5+
--FILE--
6+
<?php
7+
$im = imagecreatetruecolor(10,10);
8+
9+
try {
10+
imagerotate($im, PHP_INT_MIN, 0);
11+
} catch (\ValueError $e) {
12+
echo $e->getMessage() . PHP_EOL;
13+
}
14+
15+
try {
16+
imagerotate($im, PHP_INT_MAX, 0);
17+
} catch (\ValueError $e) {
18+
echo $e->getMessage();
19+
}
20+
--EXPECTF--
21+
imagerotate(): Argument #2 ($angle) must be between %s and %s
22+
imagerotate(): Argument #2 ($angle) must be between %s and %s

0 commit comments

Comments
 (0)