Skip to content

Commit 1919c4b

Browse files
committed
Fix #71316: libpng warning from imagecreatefromstring
We backport the respective upstream fix[1] to our bundled libgd. [1] <libgd/libgd@636100b> Closes GH-7615.
1 parent 905a1d5 commit 1919c4b

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

NEWS

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@ PHP NEWS
22
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
33
?? ??? ????, PHP 7.4.27
44

5+
- GD:
6+
. Fixed bug #71316 (libpng warning from imagecreatefromstring). (cmb)
7+
58
18 Nov 2021, PHP 7.4.26
69

710
- Core:

ext/gd/libgd/gd_png.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,11 @@ static void gdPngErrorHandler (png_structp png_ptr, png_const_charp msg)
7171

7272
longjmp (jmpbuf_ptr->jmpbuf, 1);
7373
}
74+
75+
static void gdPngWarningHandler (png_structp png_ptr, png_const_charp msg)
76+
{
77+
gd_error_ex(GD_WARNING, "gd-png: libpng warning: %s", msg);
78+
}
7479
#endif
7580

7681
static void gdPngReadData (png_structp png_ptr, png_bytep data, png_size_t length)
@@ -152,7 +157,7 @@ gdImagePtr gdImageCreateFromPngCtx (gdIOCtx * infile)
152157
}
153158

154159
#ifdef PNG_SETJMP_SUPPORTED
155-
png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, &jbw, gdPngErrorHandler, NULL);
160+
png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, &jbw, gdPngErrorHandler, gdPngWarningHandler);
156161
#else
157162
png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
158163
#endif
@@ -494,7 +499,7 @@ void gdImagePngCtxEx (gdImagePtr im, gdIOCtx * outfile, int level, int basefilte
494499
#ifdef PNG_SETJMP_SUPPORTED
495500
jmpbuf_wrapper jbw;
496501

497-
png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, &jbw, gdPngErrorHandler, NULL);
502+
png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, &jbw, gdPngErrorHandler, gdPngWarningHandler);
498503
#else
499504
png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
500505
#endif

0 commit comments

Comments
 (0)