diff --git a/ANNOUNCE b/ANNOUNCE index a65bfd558..5ab61c9ea 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -36,6 +36,7 @@ Version 1.6.2beta01 [April 13, 2013] transform_info is called. Corrected a misplaced closing bracket in contrib/libtests/pngvalid.c (Flavio Medeiros). + Corrected length written to uncompressed iTXt chunks (Samuli Suominen). Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit diff --git a/CHANGES b/CHANGES index cc0dbdb74..5cd777c2c 100644 --- a/CHANGES +++ b/CHANGES @@ -4484,6 +4484,7 @@ Version 1.6.2beta01 [April 13, 2013] transform_info is called. Corrected a misplaced closing bracket in contrib/libtests/pngvalid.c (Flavio Medeiros). + Corrected length written to uncompressed iTXt chunks (Samuli Suominen). Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit diff --git a/pngwutil.c b/pngwutil.c index 8c49cfd40..8f669374c 100644 --- a/pngwutil.c +++ b/pngwutil.c @@ -1,7 +1,7 @@ /* pngwutil.c - utilities to write a PNG file * - * Last changed in libpng 1.6.0 [February 14, 2013] + * Last changed in libpng 1.6.2 [(PENDING RELEASE)] * Copyright (c) 1998-2013 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) @@ -1738,16 +1738,16 @@ png_write_iTXt(png_structrp png_ptr, int compression, png_const_charp key, { if (png_text_compress(png_ptr, png_iTXt, &comp, prefix_len) != Z_OK) png_error(png_ptr, png_ptr->zstream.msg); + png_write_chunk_header(png_ptr, png_iTXt, comp.output_len + prefix_len); } else { if (comp.input_len > PNG_UINT_31_MAX-prefix_len) png_error(png_ptr, "iTXt: uncompressed text too long"); + png_write_chunk_header(png_ptr, png_iTXt, strlen(text) + prefix_len); } - png_write_chunk_header(png_ptr, png_iTXt, comp.output_len + prefix_len); - png_write_chunk_data(png_ptr, new_key, key_len); png_write_chunk_data(png_ptr, (png_const_bytep)lang, lang_len);