diff --git a/NEWS b/NEWS index f218cc9a6df..b723d6e14d2 100644 --- a/NEWS +++ b/NEWS @@ -25,6 +25,10 @@ PHP NEWS (Jakub Zelenka) . Fixed bug GH-12905 (FFI::new interacts badly with observers). (nielsdos) +- GD: + . Fixed GH-13082 undefined behavior with GdFont instances handling with + imageload* and imagechar*. (David Carlier) + - Intl: . Fixed GH-12943 (IntlDateFormatter::__construct accepts 'C' as valid locale). (David Carlier) diff --git a/ext/gd/gd.c b/ext/gd/gd.c index 1d8b3a0a1d4..c86a663c5b7 100644 --- a/ext/gd/gd.c +++ b/ext/gd/gd.c @@ -2681,8 +2681,8 @@ static gdFontPtr php_find_gd_font(zend_object *font_obj, zend_long font_int) */ static void php_imagefontsize(INTERNAL_FUNCTION_PARAMETERS, int arg) { - zend_object *font_obj; - zend_long font_int; + zend_object *font_obj = NULL; + zend_long font_int = 0; gdFontPtr font; ZEND_PARSE_PARAMETERS_START(1, 1) @@ -2750,8 +2750,8 @@ static void php_imagechar(INTERNAL_FUNCTION_PARAMETERS, int mode) int ch = 0, col, x, y, i, l = 0; unsigned char *str = NULL; zend_object *font_obj; - zend_long font_int; - gdFontPtr font; + zend_long font_int = 0; + gdFontPtr font = NULL; ZEND_PARSE_PARAMETERS_START(6, 6) Z_PARAM_OBJECT_OF_CLASS(IM, gd_image_ce) diff --git a/ext/gd/tests/gh13082.gdf b/ext/gd/tests/gh13082.gdf new file mode 100644 index 00000000000..44669f3d12b Binary files /dev/null and b/ext/gd/tests/gh13082.gdf differ diff --git a/ext/gd/tests/gh13082.phpt b/ext/gd/tests/gh13082.phpt new file mode 100644 index 00000000000..7434d699bee --- /dev/null +++ b/ext/gd/tests/gh13082.phpt @@ -0,0 +1,16 @@ +--TEST-- +GH-13082 - imagefontwidth/height unexpectedly throwing an exception on a valid GdFont object. +--EXTENSIONS-- +gd +--FILE-- + +--EXPECT-- +int(12) +int(20)