Skip to content

Commit 0cd0c87

Browse files
committed
Fix phpGH-8848: imagecopyresized() error refers to the wrong argument
1 parent fcd69a4 commit 0cd0c87

File tree

2 files changed

+35
-4
lines changed

2 files changed

+35
-4
lines changed

ext/gd/gd.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3013,22 +3013,22 @@ PHP_FUNCTION(imagecopyresized)
30133013
dstW = DW;
30143014

30153015
if (dstW <= 0) {
3016-
zend_argument_value_error(3, "must be greater than 0");
3016+
zend_argument_value_error(7, "must be greater than 0");
30173017
RETURN_THROWS();
30183018
}
30193019

30203020
if (dstH <= 0) {
3021-
zend_argument_value_error(4, "must be greater than 0");
3021+
zend_argument_value_error(8, "must be greater than 0");
30223022
RETURN_THROWS();
30233023
}
30243024

30253025
if (srcW <= 0) {
3026-
zend_argument_value_error(5, "must be greater than 0");
3026+
zend_argument_value_error(9, "must be greater than 0");
30273027
RETURN_THROWS();
30283028
}
30293029

30303030
if (srcH <= 0) {
3031-
zend_argument_value_error(6, "must be greater than 0");
3031+
zend_argument_value_error(10, "must be greater than 0");
30323032
RETURN_THROWS();
30333033
}
30343034

ext/gd/tests/gh8848.phpt

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
--TEST--
2+
GH-8848 (imagecopyresized() error refers to the wrong argument)
3+
--SKIPIF--
4+
<?php
5+
if (!extension_loaded("gd")) die("skip gd extension not available");
6+
?>
7+
--FILE--
8+
<?php
9+
$image1 = imagecreatetruecolor(1, 1);
10+
$image2 = imagecreatetruecolor(1, 1);
11+
12+
$argslist = [
13+
[0, 1, 1, 1],
14+
[1, 0, 1, 1],
15+
[1, 1, 0, 1],
16+
[1, 1, 1, 0],
17+
];
18+
19+
foreach ($argslist as $args) {
20+
try {
21+
imagecopyresized($image1, $image2, 1, 1, 1, 1, ...$args);
22+
} catch (ValueError $ex) {
23+
echo $ex->getMessage(), PHP_EOL;
24+
}
25+
}
26+
?>
27+
--EXPECT--
28+
imagecopyresized(): Argument #7 ($dst_width) must be greater than 0
29+
imagecopyresized(): Argument #8 ($dst_height) must be greater than 0
30+
imagecopyresized(): Argument #9 ($src_width) must be greater than 0
31+
imagecopyresized(): Argument #10 ($src_height) must be greater than 0

0 commit comments

Comments
 (0)