--- a/gif2png.c 2012-01-29 00:02:06.000000000 +0100 +++ b/gif2png.c 2012-02-06 00:49:14.000000000 +0100 @@ -12,6 +12,7 @@ #include /* for isatty() */ #include #include +#include #if !defined(TRUE) #define FALSE 0 @@ -122,8 +123,8 @@ int colors_used = 0; byte remap[MAXCMSIZE]; int low_prec; - png_struct *png_ptr = xalloc(sizeof (png_struct)); - png_info *info_ptr = xalloc(sizeof (png_info)); + png_struct *png_ptr; + png_info *info_ptr; int p; int gray_bitdepth; png_color pal_rgb[MAXCMSIZE], *pltep; @@ -138,6 +139,19 @@ png_text software; png_text comment; + png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); + if (png_ptr == NULL) { + fprintf(stderr, "gif2png: fatal error, out of memory\n"); + fprintf(stderr, "gif2png: exiting ungracefully\n"); + exit(1); + } + info_ptr = png_create_info_struct(png_ptr); + if (info_ptr == NULL) { + fprintf(stderr, "gif2png: fatal error, out of memory\n"); + fprintf(stderr, "gif2png: exiting ungracefully\n"); + exit(1); + } + /* these volatile declarations prevent gcc warnings ("variable might be * clobbered by `longjmp' or `vfork'") */ volatile int gray = TRUE;