From 636100b9280a86e70d852d89251fc5492fce33f4 Mon Sep 17 00:00:00 2001 From: woho Date: Thu, 21 Oct 2021 11:53:17 +0200 Subject: Catch libpng warnings (#295) --- src/gd_png.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/gd_png.c b/src/gd_png.c index c99fd30..a325e5c 100644 --- a/src/gd_png.c +++ b/src/gd_png.c @@ -77,6 +77,11 @@ gdPngErrorHandler (png_structp png_ptr, png_const_charp msg) longjmp (jmpbuf_ptr->jmpbuf, 1); } + +static void gdPngWarningHandler (png_structp png_ptr, png_const_charp msg) +{ + gd_error_ex(GD_WARNING, "gd-png: libpng warning: %s", msg); +} #endif static void @@ -235,7 +240,7 @@ BGD_DECLARE(gdImagePtr) gdImageCreateFromPngCtx (gdIOCtx * infile) } #ifdef PNG_SETJMP_SUPPORTED - png_ptr = png_create_read_struct (PNG_LIBPNG_VER_STRING, &jbw, gdPngErrorHandler, NULL); + png_ptr = png_create_read_struct (PNG_LIBPNG_VER_STRING, &jbw, gdPngErrorHandler, gdPngWarningHandler); #else png_ptr = png_create_read_struct (PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); #endif @@ -787,7 +792,7 @@ static int _gdImagePngCtxEx(gdImagePtr im, gdIOCtx * outfile, int level) #ifdef PNG_SETJMP_SUPPORTED png_ptr = png_create_write_struct (PNG_LIBPNG_VER_STRING, &jbw, gdPngErrorHandler, - NULL); + gdPngWarningHandler); #else png_ptr = png_create_write_struct (PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); #endif -- cgit v1.2.1