From 685d79e27a3edde213ea581319ca6d116063bf7a Mon Sep 17 00:00:00 2001 From: Glenn Randers-Pehrson Date: Tue, 20 Aug 2013 21:15:31 -0500 Subject: [PATCH] [libpng16] Delay calling png_init_filter_functions() until a row with nonzero filter is found. --- ANNOUNCE | 6 ++++-- CHANGES | 4 +++- pngrutil.c | 9 ++++++--- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/ANNOUNCE b/ANNOUNCE index 83588bc54..71699702c 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -1,5 +1,5 @@ -Libpng 1.6.4beta01 - July 21, 2013 +Libpng 1.6.4beta01 - August 21, 2013 This is not intended to be a public release. It will be replaced within a few weeks by a public version or by another test version. @@ -26,7 +26,9 @@ Other information: Changes since the last public release (1.6.3): -Version 1.6.4beta01 [July 21, 2013] +Version 1.6.4beta01 [August 21, 2013] + Delay calling png_init_filter_functions() until a row with nonzero filter + is found. Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit diff --git a/CHANGES b/CHANGES index cd4934ea0..c21b2d725 100644 --- a/CHANGES +++ b/CHANGES @@ -4618,7 +4618,9 @@ Version 1.6.3 [July 18, 2013] Added "/* SAFE */" comments in pngrutil.c and pngrtran.c where warnings may be erroneously issued by code-checking applications. -Version 1.6.4beta01 [July 21, 2013] +Version 1.6.4beta01 [August 21, 2013] + Delay calling png_init_filter_functions() until a row with nonzero filter + is found. Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit diff --git a/pngrutil.c b/pngrutil.c index 0a75cd81c..112c28f5f 100644 --- a/pngrutil.c +++ b/pngrutil.c @@ -1,7 +1,7 @@ /* pngrutil.c - utilities to read a PNG file * - * Last changed in libpng 1.6.3 [July 18, 2013] + * Last changed in libpng 1.6.4 [(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.) @@ -3922,10 +3922,13 @@ png_read_filter_row(png_structrp pp, png_row_infop row_info, png_bytep row, * PNG_FILTER_OPTIMIZATIONS to a function that overrides the generic * implementations. See png_init_filter_functions above. */ - if (pp->read_filter[0] == NULL) - png_init_filter_functions(pp); if (filter > PNG_FILTER_VALUE_NONE && filter < PNG_FILTER_VALUE_LAST) + { + if (pp->read_filter[0] == NULL) + png_init_filter_functions(pp); + pp->read_filter[filter-1](row_info, row, prev_row); + } } #ifdef PNG_SEQUENTIAL_READ_SUPPORTED