Skip to content

Commit 60a64dc

Browse files
committed
Fix GH-17703: imagescale both width and heigh set with negative values.
Throwing a ValueError in this particular case.
1 parent 55e676e commit 60a64dc

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

ext/gd/gd.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3633,6 +3633,11 @@ PHP_FUNCTION(imagescale)
36333633

36343634
im = php_gd_libgdimageptr_from_zval_p(IM);
36353635

3636+
if (tmp_h < 0 && tmp_w < 0) {
3637+
zend_value_error("$width and $height cannot be both negative");
3638+
RETURN_THROWS();
3639+
}
3640+
36363641
if (tmp_h < 0 || tmp_w < 0) {
36373642
/* preserve ratio */
36383643
long src_x, src_y;

ext/gd/tests/gh17703.phpt

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
--TEST--
2+
GH-17703 both width and height value being negative triggers ValueError on width.
3+
--EXTENSIONS--
4+
gd
5+
--FILE--
6+
<?php
7+
8+
$img = imagecreatetruecolor ( 256, 1);
9+
10+
try {
11+
imagescale($img, -1, -1, 0);
12+
} catch (\ValueError $e) {
13+
echo $e->getMessage();
14+
}
15+
?>
16+
--EXPECT--
17+
$width and $height cannot be both negative

0 commit comments

Comments
 (0)