--- a/png2bmp.c.orig 2005-09-04 01:00:00.000000000 +0900 +++ b/png2bmp.c 2010-03-03 01:38:20.000000000 +0900 @@ -370,16 +370,21 @@ */ static int skip_macbinary(png_structp png_ptr) { - void png_read_data(png_structp, png_bytep, png_size_t); - enum { PNG_BYTES_TO_CHECK = 8, MACBIN_SIZE = 128 }; /* ^ in pngrio.c */ + enum { PNG_BYTES_TO_CHECK = 8, MACBIN_SIZE = 128 }; png_byte buf[MACBIN_SIZE]; png_bytep sig; + png_size_t check; + png_FILE_p fp = (png_FILE_p)png_get_io_ptr(png_ptr); + + check = (png_size_t)fread(buf, 1, PNG_BYTES_TO_CHECK, fp); + if (check != PNG_BYTES_TO_CHECK) png_error(png_ptr, "Read Error"); - png_read_data(png_ptr, buf, PNG_BYTES_TO_CHECK); if (png_sig_cmp(buf, 0, PNG_BYTES_TO_CHECK) == 0) return PNG_BYTES_TO_CHECK; - png_read_data(png_ptr, buf, MACBIN_SIZE); + check = (png_size_t)fread(buf, 1, MACBIN_SIZE, fp); + if (check != MACBIN_SIZE) png_error(png_ptr, "Read Error"); + sig = buf + MACBIN_SIZE - PNG_BYTES_TO_CHECK; if (png_sig_cmp(sig, 0, PNG_BYTES_TO_CHECK) == 0) return PNG_BYTES_TO_CHECK; --- a/common.h.orig 2005-09-04 01:00:00.000000000 +0900 +++ b/common.h 2012-09-25 15:31:52.000000000 +0900 @@ -80,6 +80,7 @@ # include #endif +#include "zlib.h" #include "png.h" #if (PNG_LIBPNG_VER < 10004)