Index: Tk-PNG-2.005/libpng/pngconf.h --- Tk-PNG-2.005/libpng/pngconf.h.orig 2004-07-01 13:18:23 +0200 +++ Tk-PNG-2.005/libpng/pngconf.h 2004-07-01 13:30:50 +0200 @@ -119,10 +119,6 @@ #define _PNG_SAVE_BSD_SOURCE #undef _BSD_SOURCE #endif -#ifdef _SETJMP_H -__png.h__ already includes setjmp.h -__dont__ include it again -#endif #endif /* __linux__ */ /* include setjmp.h for error handling */ Index: Tk-PNG-2.005/libpng/pngerror.c --- Tk-PNG-2.005/libpng/pngerror.c.orig 2004-07-01 13:18:23 +0200 +++ Tk-PNG-2.005/libpng/pngerror.c 2004-07-01 13:34:07 +0200 @@ -82,10 +82,13 @@ if (message == NULL) buffer[iout] = 0; else { + png_size_t len; + if ((len = png_strlen(error_message)) > 63) + len = 63; buffer[iout++] = ':'; buffer[iout++] = ' '; - png_memcpy(buffer+iout, message, 64); - buffer[iout+63] = 0; + png_memcpy(buffer+iout, error_message, len); + buffer[iout+len] = 0; } } Index: Tk-PNG-2.005/libpng/pngrtran.c --- Tk-PNG-2.005/libpng/pngrtran.c.orig 2000-04-21 20:57:35 +0200 +++ Tk-PNG-2.005/libpng/pngrtran.c 2004-07-01 13:18:23 +0200 @@ -1783,8 +1783,8 @@ /* This changes the data from GG to GGXX */ if (flags & PNG_FLAG_FILLER_AFTER) { - png_bytep sp = row + (png_size_t)row_width; - png_bytep dp = sp + (png_size_t)row_width; + png_bytep sp = row + (png_size_t)row_width * 2; + png_bytep dp = sp + (png_size_t)row_width * 2; for (i = 1; i < row_width; i++) { *(--dp) = hi_filler; @@ -1801,8 +1801,8 @@ /* This changes the data from GG to XXGG */ else { - png_bytep sp = row + (png_size_t)row_width; - png_bytep dp = sp + (png_size_t)row_width; + png_bytep sp = row + (png_size_t)row_width * 2; + png_bytep dp = sp + (png_size_t)row_width * 2; for (i = 0; i < row_width; i++) { *(--dp) = *(--sp); @@ -1859,8 +1859,8 @@ /* This changes the data from RRGGBB to RRGGBBXX */ if (flags & PNG_FLAG_FILLER_AFTER) { - png_bytep sp = row + (png_size_t)row_width * 3; - png_bytep dp = sp + (png_size_t)row_width; + png_bytep sp = row + (png_size_t)row_width * 6; + png_bytep dp = sp + (png_size_t)row_width * 2; for (i = 1; i < row_width; i++) { *(--dp) = hi_filler; @@ -1881,8 +1881,8 @@ /* This changes the data from RRGGBB to XXRRGGBB */ else { - png_bytep sp = row + (png_size_t)row_width * 3; - png_bytep dp = sp + (png_size_t)row_width; + png_bytep sp = row + (png_size_t)row_width * 6; + png_bytep dp = sp + (png_size_t)row_width * 2; for (i = 0; i < row_width; i++) { *(--dp) = *(--sp); Index: Tk-804.027/PNG/libpng/pngconf.h --- Tk-804.027/PNG/libpng/pngconf.h.orig 2003-11-29 12:39:30 +0100 +++ Tk-804.027/PNG/libpng/pngconf.h 2004-07-01 13:36:23 +0200 @@ -251,10 +251,6 @@ # define PNG_SAVE_BSD_SOURCE # undef _BSD_SOURCE # endif -# ifdef _SETJMP_H - __png.h__ already includes setjmp.h; - __dont__ include it again.; -# endif # endif /* __linux__ */ /* include setjmp.h for error handling */ Index: Tk-804.027/PNG/libpng/pngerror.c --- Tk-804.027/PNG/libpng/pngerror.c.orig 2003-11-29 12:39:30 +0100 +++ Tk-804.027/PNG/libpng/pngerror.c 2004-07-01 13:36:23 +0200 @@ -135,10 +135,13 @@ buffer[iout] = 0; else { + png_size_t len; + if ((len = png_strlen(error_message)) > 63) + len = 63; buffer[iout++] = ':'; buffer[iout++] = ' '; - png_memcpy(buffer+iout, error_message, 64); - buffer[iout+63] = 0; + png_memcpy(buffer+iout, error_message, len); + buffer[iout+len] = 0; } } Index: Tk-804.027/PNG/libpng/pngrtran.c --- Tk-804.027/PNG/libpng/pngrtran.c.orig 2003-11-29 12:39:31 +0100 +++ Tk-804.027/PNG/libpng/pngrtran.c 2004-07-01 13:36:23 +0200 @@ -1889,8 +1889,8 @@ /* This changes the data from GG to GGXX */ if (flags & PNG_FLAG_FILLER_AFTER) { - png_bytep sp = row + (png_size_t)row_width; - png_bytep dp = sp + (png_size_t)row_width; + png_bytep sp = row + (png_size_t)row_width * 2; + png_bytep dp = sp + (png_size_t)row_width * 2; for (i = 1; i < row_width; i++) { *(--dp) = hi_filler; @@ -1907,8 +1907,8 @@ /* This changes the data from GG to XXGG */ else { - png_bytep sp = row + (png_size_t)row_width; - png_bytep dp = sp + (png_size_t)row_width; + png_bytep sp = row + (png_size_t)row_width * 2; + png_bytep dp = sp + (png_size_t)row_width * 2; for (i = 0; i < row_width; i++) { *(--dp) = *(--sp); @@ -1965,8 +1965,8 @@ /* This changes the data from RRGGBB to RRGGBBXX */ if (flags & PNG_FLAG_FILLER_AFTER) { - png_bytep sp = row + (png_size_t)row_width * 3; - png_bytep dp = sp + (png_size_t)row_width; + png_bytep sp = row + (png_size_t)row_width * 6; + png_bytep dp = sp + (png_size_t)row_width * 2; for (i = 1; i < row_width; i++) { *(--dp) = hi_filler; @@ -1987,8 +1987,8 @@ /* This changes the data from RRGGBB to XXRRGGBB */ else { - png_bytep sp = row + (png_size_t)row_width * 3; - png_bytep dp = sp + (png_size_t)row_width; + png_bytep sp = row + (png_size_t)row_width * 6; + png_bytep dp = sp + (png_size_t)row_width * 2; for (i = 0; i < row_width; i++) { *(--dp) = *(--sp);