Commit aad2b534deb for php.net
commit aad2b534deba3f43ec99dc3c09d049fe3bc96c72
Author: Weilin Du <weilindu@php.net>
Date: Wed Aug 19 13:40:28 2026 +0800
ext/gd: Fix incorrect argument numbers in GD affine function errors (#23356)
This fixes wrong argument in error message in imageaffinematrixget and
mageaffinematrixconcat.
diff --git a/NEWS b/NEWS
index 7216f5c5a7d..e273a86dfca 100644
--- a/NEWS
+++ b/NEWS
@@ -14,6 +14,10 @@ PHP NEWS
. Fixed a use-after-free when Dom\Element::setAttributeNS() replaces the
value of an attribute whose child still has a live wrapper. (iliaal)
+- GD:
+ . Fixed imageaffinematrixget() and imageaffinematrixconcat() reporting the
+ wrong argument in error messages. (Weilin Du)
+
- Intl:
. Fixed a double-free when IntlGregorianCalendar construction fails after
the ICU constructor adopts the TimeZone. (iliaal)
diff --git a/ext/gd/gd.c b/ext/gd/gd.c
index 311900ba7bb..c1258652259 100644
--- a/ext/gd/gd.c
+++ b/ext/gd/gd.c
@@ -4210,7 +4210,7 @@ PHP_FUNCTION(imageaffinematrixget)
case GD_AFFINE_SCALE: {
double x, y;
if (Z_TYPE_P(options) != IS_ARRAY) {
- zend_argument_type_error(1, "must be of type array when using translate or scale");
+ zend_argument_type_error(2, "must be of type array when using translate or scale");
RETURN_THROWS();
}
@@ -4291,7 +4291,7 @@ PHP_FUNCTION(imageaffinematrixconcat)
}
if (zend_hash_num_elements(Z_ARRVAL_P(z_m2)) != 6) {
- zend_argument_value_error(1, "must have 6 elements");
+ zend_argument_value_error(2, "must have 6 elements");
RETURN_THROWS();
}
diff --git a/ext/gd/tests/bug67248.phpt b/ext/gd/tests/bug67248.phpt
index a002f71c7fd..5f00b94fadc 100644
--- a/ext/gd/tests/bug67248.phpt
+++ b/ext/gd/tests/bug67248.phpt
@@ -17,8 +17,8 @@
}
?>
--EXPECTF--
-!! [TypeError] imageaffinematrixget(): Argument #1 ($type) must be of type array when using translate or scale
-!! [TypeError] imageaffinematrixget(): Argument #1 ($type) must be of type array when using translate or scale
+!! [TypeError] imageaffinematrixget(): Argument #2 ($options) must be of type array when using translate or scale
+!! [TypeError] imageaffinematrixget(): Argument #2 ($options) must be of type array when using translate or scale
Warning: Object of class stdClass could not be converted to float in %s on line %d
array(6) {
diff --git a/ext/gd/tests/imageaffinematrixconcat_error.phpt b/ext/gd/tests/imageaffinematrixconcat_error.phpt
new file mode 100644
index 00000000000..91b355547f3
--- /dev/null
+++ b/ext/gd/tests/imageaffinematrixconcat_error.phpt
@@ -0,0 +1,14 @@
+--TEST--
+imageaffinematrixconcat() reports the correct argument for an invalid matrix size
+--EXTENSIONS--
+gd
+--FILE--
+<?php
+try {
+ imageaffinematrixconcat([1, 0, 0, 1, 0, 0], []);
+} catch (Throwable $e) {
+ echo $e::class, ': ', $e->getMessage(), "\n";
+}
+?>
+--EXPECT--
+ValueError: imageaffinematrixconcat(): Argument #2 ($matrix2) must have 6 elements