提交 ff141eb2 编写于 作者: G Glenn Randers-Pehrson

[libpng16] Renamed contrib/tools/fixitxt to contrib/tools/png-fix-itxt.

Added information in the documentation about problems with and fixes for
the bad CRC and bad iTXt chunk situations.
上级 122bec17
Libpng 1.6.3beta05 - May 8, 2013
Libpng 1.6.3beta05 - May 9, 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.
......@@ -45,7 +45,7 @@ Version 1.6.3beta04 [May 6, 2013]
Calculate our own zlib windowBits when decoding rather than trusting the
CMF bytes in the PNG datastream.
Version 1.6.3beta05 [May 8, 2013]
Version 1.6.3beta05 [May 9, 2013]
Choose to use windowBits==15 or the zlib header setting via the
benign-errors setting. If benign errors are allowed, then ignore
the windowBits setting in the zlib header.
......@@ -72,6 +72,9 @@ Version 1.6.3beta05 [May 8, 2013]
Attempt to detect configuration issues with pngdeflate, which requires
both the correct libpng and the correct zlib to function correctly.
Check ZLIB_VERNUM for mismatches, enclose #error in quotes
Renamed contrib/tools/fixitxt to contrib/tools/png-fix-itxt.
Added information in the documentation about problems with and fixes for
the bad CRC and bad iTXt chunk situations.
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
(subscription required; visit
......
......@@ -4528,7 +4528,7 @@ Version 1.6.3beta04 [May 6, 2013]
Calculate our own zlib windowBits when decoding rather than trusting the
CMF bytes in the PNG datastream.
Version 1.6.3beta05 [May 8, 2013]
Version 1.6.3beta05 [May 9, 2013]
Choose to use windowBits==15 or the zlib header setting via the
benign-errors setting. If benign errors are allowed, then ignore
the windowBits setting in the zlib header.
......@@ -4555,6 +4555,9 @@ Version 1.6.3beta05 [May 8, 2013]
Attempt to detect configuration issues with pngdeflate, which requires
both the correct libpng and the correct zlib to function correctly.
Check ZLIB_VERNUM for mismatches, enclose #error in quotes
Renamed contrib/tools/fixitxt to contrib/tools/png-fix-itxt.
Added information in the documentation about problems with and fixes for
the bad CRC and bad iTXt chunk situations.
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
(subscription required; visit
......
......@@ -10,7 +10,7 @@ ACLOCAL_AMFLAGS = -I scripts
check_PROGRAMS= pngtest pngunknown pngstest pngvalid
# Utilities - installed
bin_PROGRAMS= pngdeflate fixitxt
bin_PROGRAMS= pngdeflate png-fix-itxt
pngtest_SOURCES = pngtest.c
pngtest_LDADD = libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.la
......@@ -27,7 +27,7 @@ pngunknown_LDADD = libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.la
pngdeflate_SOURCES = contrib/tools/pngdeflate.c
pngdeflate_LDADD = libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.la
fixitxt_SOURCES = contrib/tools/fixitxt.c
png_fix_itxt_SOURCES = contrib/tools/png-fix-itxt.c
# Generally these are single line shell scripts to run a test with a particular
# set of parameters:
......@@ -196,7 +196,7 @@ $(srcdir)/scripts/pnglibconf.h.prebuilt:
# an installed one (this can happen immediately after on a clean system if
# 'make test' is the first thing the user does.)
pngstest.o pngvalid.o pngtest.o pngunknown.o timepng.o: pnglibconf.h
pngdeflate.o fixitxt.o: pnglibconf.h
pngdeflate.o png-fix-itxt.o: pnglibconf.h
# We must use -DPNG_NO_USE_READ_MACROS here even when the library may actually
# be built with PNG_USE_READ_MACROS; this prevents the read macros from
......
#include <stdio.h>
/* fixitxt version 1.0.0
/* png-fix-itxt version 1.0.0
*
* Copyright 2013 Glenn Randers-Pehrson
* Last changed in libpng 1.6.3 [(PENDING RELEASE)]
*
* This code is released under the libpng license.
* For conditions of distribution and use, see the disclaimer
......@@ -10,7 +10,7 @@
*
* Usage:
*
* fixitxt.exe < bad.png > good.png
* png-fix-itxt.exe < bad.png > good.png
*
* Fixes a PNG file written with libpng-1.6.0 or 1.6.1 that has one or more
* uncompressed iTXt chunks. Assumes that the actual length is greater
......@@ -22,8 +22,14 @@
*
* Requires zlib (for crc32 and Z_NULL); build with
*
* gcc -O -o fixitxt fixitxt.c -lz
* gcc -O -o png-fix-itxt png-fix-itxt.c -lz
*
* If you need to handle iTXt chunks larger than 500000 kbytes you must
* rebuild png-fix-itxt with a larger values of MAX_LENGTH (or a smaller value
* if you know you will never encounter such huge iTXt chunks).
*/
#include <stdio.h>
#include <zlib.h>
#define MAX_LENGTH 500000
......
......@@ -691,8 +691,8 @@ fix_one(FILE *fp, FILE *fpIn, IDAT_info *info, png_uint_32 max_IDAT, int strip)
}
} /* while len > 0 && state < 4 */
/* The above loop only exits on 0 bytes left or end of stream, if
* the stream ended with bytes left discard them:
/* The above loop only exits on 0 bytes left or end of stream. If
* the stream ended with bytes left, discard them:
*/
if (len > 0)
{
......@@ -723,7 +723,7 @@ fix_one(FILE *fp, FILE *fpIn, IDAT_info *info, png_uint_32 max_IDAT, int strip)
case 1: /* Keep gAMA, sRGB */
if (tag == png_gAMA || tag == png_sRGB)
break;
/* Fall trhough */
/* Fall through */
default: /* Keep only IHDR, PLTE, tRNS */
if (tag == png_IHDR || tag == png_PLTE || tag == png_tRNS)
......
libpng-manual.txt - A description on how to use and modify libpng
libpng version 1.6.3beta05 - May 6, 2013
libpng version 1.6.3beta05 - May 9, 2013
Updated and distributed by Glenn Randers-Pehrson
<glennrp at users.sourceforge.net>
Copyright (c) 1998-2013 Glenn Randers-Pehrson
......@@ -11,7 +11,7 @@ libpng-manual.txt - A description on how to use and modify libpng
Based on:
libpng versions 0.97, January 1998, through 1.6.3beta05 - May 6, 2013
libpng versions 0.97, January 1998, through 1.6.3beta05 - May 9, 2013
Updated and distributed by Glenn Randers-Pehrson
Copyright (c) 1998-2013 Glenn Randers-Pehrson
......@@ -5035,6 +5035,20 @@ The machine-generated configure files are no longer included in branches
libpng16 and later of the GIT repository. They continue to be included
in the tarball releases, however.
Libpng-1.6.0 and later use the CMF bytes at the beginning of the IDAT stream
to set the size of the sliding window for reading instead of using the default
32-kbyte sliding window size. It was discovered that there are hundreds of PNG
files in the wild that have incorrect CMF bytes that cause libpng to now issue
a "too far back" error and reject the file. Libpng-1.6.3 provides a way to
revert to the libpng-1.5.x behavior (ignoring the CMF bytes and using a 32-kbyte
sliding window), and provides a tool (called "contrib/tools/pnginflate"),
for optimizing the CMF bytes correctly.
Libpng-1.6.0 and libpng-1.6.1 wrote uncompressed iTXt chunks with the wrong
length, which resulted in PNG files that cannot be read beyond the bad iTXt
chunk. This error was fixed in libpng-1.6.3, and a tool (called
contrib/tools/png-fix-itxt) has been added to the libpng distribution.
XIII. Detecting libpng
The png_get_io_ptr() function has been present since libpng-0.88, has never
......@@ -5197,7 +5211,7 @@ Other rules can be inferred by inspecting the libpng source.
XVI. Y2K Compliance in libpng
May 6, 2013
May 9, 2013
Since the PNG Development group is an ad-hoc body, we can't make
an official declaration.
......
.TH LIBPNG 3 "May 6, 2013"
.TH LIBPNG 3 "May 9, 2013"
.SH NAME
libpng \- Portable Network Graphics (PNG) Reference Library 1.6.3beta05
.SH SYNOPSIS
......@@ -504,7 +504,7 @@ Following is a copy of the libpng-manual.txt file that accompanies libpng.
.SH LIBPNG.TXT
libpng-manual.txt - A description on how to use and modify libpng
libpng version 1.6.3beta05 - May 6, 2013
libpng version 1.6.3beta05 - May 9, 2013
Updated and distributed by Glenn Randers-Pehrson
<glennrp at users.sourceforge.net>
Copyright (c) 1998-2013 Glenn Randers-Pehrson
......@@ -515,7 +515,7 @@ libpng-manual.txt - A description on how to use and modify libpng
Based on:
libpng versions 0.97, January 1998, through 1.6.3beta05 - May 6, 2013
libpng versions 0.97, January 1998, through 1.6.3beta05 - May 9, 2013
Updated and distributed by Glenn Randers-Pehrson
Copyright (c) 1998-2013 Glenn Randers-Pehrson
......@@ -5540,6 +5540,20 @@ The machine-generated configure files are no longer included in branches
libpng16 and later of the GIT repository. They continue to be included
in the tarball releases, however.
Libpng-1.6.0 and later use the CMF bytes at the beginning of the IDAT stream
to set the size of the sliding window for reading instead of using the default
32-kbyte sliding window size. It was discovered that there are hundreds of PNG
files in the wild that have incorrect CMF bytes that cause libpng to now issue
a "too far back" error and reject the file. Libpng-1.6.3 provides a way to
revert to the libpng-1.5.x behavior (ignoring the CMF bytes and using a 32-kbyte
sliding window), and provides a tool (called "contrib/tools/pnginflate"),
for optimizing the CMF bytes correctly.
Libpng-1.6.0 and libpng-1.6.1 wrote uncompressed iTXt chunks with the wrong
length, which resulted in PNG files that cannot be read beyond the bad iTXt
chunk. This error was fixed in libpng-1.6.3, and a tool (called
contrib/tools/png-fix-itxt) has been added to the libpng distribution.
.SH XIII. Detecting libpng
The png_get_io_ptr() function has been present since libpng-0.88, has never
......@@ -5702,7 +5716,7 @@ Other rules can be inferred by inspecting the libpng source.
.SH XVI. Y2K Compliance in libpng
May 6, 2013
May 9, 2013
Since the PNG Development group is an ad-hoc body, we can't make
an official declaration.
......@@ -5979,7 +5993,7 @@ possible without all of you.
Thanks to Frank J. T. Wojcik for helping with the documentation.
Libpng version 1.6.3beta05 - May 6, 2013:
Libpng version 1.6.3beta05 - May 9, 2013:
Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net).
......@@ -6002,7 +6016,7 @@ this sentence.
This code is released under the libpng license.
libpng versions 1.2.6, August 15, 2004, through 1.6.3beta05, May 6, 2013, are
libpng versions 1.2.6, August 15, 2004, through 1.6.3beta05, May 9, 2013, are
Copyright (c) 2004,2006-2007 Glenn Randers-Pehrson, and are
distributed according to the same disclaimer and license as libpng-1.2.5
with the following individual added to the list of Contributing Authors
......@@ -6101,7 +6115,7 @@ certification mark of the Open Source Initiative.
Glenn Randers-Pehrson
glennrp at users.sourceforge.net
May 6, 2013
May 9, 2013
.\" end of man page
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册