ftp://ftp.netbsd.org/pub/pkgsrc/current/pkgsrc/graphics/gif2png/patches/patch-aa --- gif2png.c +++ gif2png.c @@ -10,6 +10,7 @@ #include #include #include /* for isatty() */ +#include #if !defined(TRUE) #define FALSE 0 @@ -120,8 +121,8 @@ int writefile(struct GIFelement *s,struc 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; @@ -136,6 +137,19 @@ int writefile(struct GIFelement *s,struc 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;