From 55e93d7090fd833c3bf9bb78f472958d55b96798 Mon Sep 17 00:00:00 2001 From: Glenn Randers-Pehrson Date: Sat, 13 Apr 2013 16:23:48 -0500 Subject: [PATCH] [libpng17] Fixed length written to uncompressed iTXt chunks (Samuli Suominen). --- ANNOUNCE | 1 + CHANGES | 1 + pngwutil.c | 4 ++-- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/ANNOUNCE b/ANNOUNCE index 252cbe8eb..a642882b0 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -247,6 +247,7 @@ Version 1.7.0beta07 [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 2639c05e6..43d31e648 100644 --- a/CHANGES +++ b/CHANGES @@ -4534,6 +4534,7 @@ Version 1.7.0beta07 [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 7b1a563e2..1f93a7367 100644 --- a/pngwutil.c +++ b/pngwutil.c @@ -1742,16 +1742,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);