OSDN Git Service

binding with libharu.
[putex/putex.git] / src / texsourc / lib / libpng / ANNOUNCE
1
2 Libpng 1.7.0beta31 - February 6, 2014
3
4 This is not intended to be a public release.  It will be replaced
5 within a few weeks by a public version or by another test version.
6
7 Files available for download:
8
9 Source files with LF line endings (for Unix/Linux) and with a
10 "configure" script
11
12    1.7.0beta31.tar.xz (LZMA-compressed, recommended)
13    1.7.0beta31.tar.gz
14
15 Source files with CRLF line endings (for Windows), without the
16 "configure" script
17
18    lp170b31.7z  (LZMA-compressed, recommended)
19    lp170b31.zip
20
21 Other information:
22
23    1.7.0beta31-README.txt
24    1.7.0beta31-LICENSE.txt
25    Gnupg/*.asc (PGP armored detached signatures)
26
27 Changes since the last public release (1.6.0):
28
29 Version 1.7.0alpha01 [December 15, 2012]
30   Started 1.7.0 branch from libpng-1.6.0beta33.
31   Made 8-bit compose and rgb_to_grayscale accuracy improvements.  These
32     changes cause 16-bit arithmetic to be used for 8-bit data in the gamma
33     corrected compose and grayscale operations.  The arithmetic errors have
34     three sources all of which are fixed in this commit:
35     1) 8-bit linear calculations produce massive errors for lower intensity
36        values.
37     2) The old 16-bit "16 to 8" gamma table code erroneously wrote the lowest
38        output value into a table entry which corresponded to multiple output
39        values (so where the value written should have been the closest to the
40        transformed input value.)
41     3) In a number of cases the code to access the 16-bit table did not round;
42        it did a simple shift, which was wrong and made the side effects of (2)
43        even worse.
44   The new gamma code does not have the 16-to-8 problem at the cost of slightly
45     more calculations and the algorithm used to minimize the number of
46     calculations has been extended to all the 16-bit tables; it has advantages
47     for any significant gamma correction.
48   Rearranged png_struct, remove unused members, change png_set_filter handling
49     png_struct members rearranged - partly to reorder to avoid packing, partly
50     to put frequently accessed members at the start and partly to make
51     the grouping more clear. png_set_filter code has been rewritten and the
52     code shared with png_write_start_row moved to a common function.  Comments
53     in png.h have been made more clear. Minor fixes to
54     contrib/libtests/timepng.c and some of the png_*_tRNS logic, including
55     more error detection in png_set_tRNS.
56   Cleaned up USER_LIMITS feature, removing members from png_struct when not
57     required.
58   Rearranged ARM-NEON optimizations to isolate the machine specific code to
59     the hardware subdirectory, and add comments to pngrutil.c so that
60     implementors of other optimizations will know what to do.
61   Fixed cases of unquoted DESTDIR in Makefile.am.
62   Rebuilt Makefile.in, configure, etc., with autoconf-2.69 and automake-1.12.5.
63
64 Version 1.7.0alpha02 [December 17, 2012]
65   Removed functions that were deprecated in libpng-1.6.0:
66     png_reset_zstream(), png_info_init_3(), and png_data_freer() and its
67     associated flags.
68   Removed some duplicated lines from contrib/tools/scale.c and png.c.
69   Changed some instances of png_warning() to png_app_error().
70   Updated some left over "1.6.0beta32" in code sources.
71   Fixed a "png_structp" prototype (should be png_structrp) in arm_init.c
72   Updated the version-number hack in pngvalid.c
73
74 Version 1.7.0alpha03 [December 19, 2012]
75   Cleaned up and enhanced the configure option; libpng now correctly
76     links and tests against zlib with a prefix; tests have been clarified; and
77     irrelevant or obsolete things (as defined by the autotools man page) have
78     been removed.
79   Documented new PNG_ABORT behavior in the manual and commentary in pngerror.c
80   Cleaned up whitespace in the synopsis portion of the manpage "libpng.3"
81   Fixed previous support for Z_PREFIX in configure builds, corrected sCAL APIs;
82     some of these use floating point arithmetic so they need to be disabled if
83     floating point arithmetic is switched off.  This is a quiet API change -
84     previously it appeared that the APIs were supported if fixed point
85     arithmetic was used internally, however they required certain APIs (floor,
86     modf, frexp, atof) that are part of C floating point support. Changed
87     png_fixed and the gamma code specific version of the same to avoid floor(),
88     which may be a library function (not an intrinsic). Removed unused #if 0
89     code.
90   Disassembled the version number in scripts/options.awk (necessary for
91     building on SunOs).
92
93 Version 1.7.0alpha04 [December 23, 2012]
94   Added scripts/makefile.msys contributed by Christopher M. Wheeler
95   Made default Zlib compression settings be configurable. This adds #defines to
96     pnglibconf.h to control the defaults.
97   Fixed Windows build issues, enabled ARM compilation. Various warnings issued
98     by earlier versions of GCC fixed for Cygwin and Min/GW (which both use old
99     GCCs.) ARM support is enabled by default in zlib.props (unsupported by
100     Microsoft) and ARM compilation is made possible by deleting the check for
101     x86. The test programs cannot be run because they are not signed.
102
103 Version 1.7.0alpha05 [December 24, 2012]
104   Discontinued distributing libpng-1.x.x.tar.bz2.
105   Discontinued distributing libpng-1.7.0-1.6.0-diff.txt and similar.
106
107 Version 1.7.0alpha06 [January 1, 2013]
108   Fixed 'make distcheck' on SUN OS - libpng.so was not being removed
109
110 Version 1.7.0alpha07 [January 10, 2013]
111   Fixed conceivable but difficult to repro overflow. Also added two test
112     programs to generate and test a PNG which should have the problem.
113
114 Version 1.7.0alpha08 [January 17, 2013]
115   Corrected previous attempt at overflow detection in png_set_unknown_chunks().
116
117 Version 1.7.0alpha09 [January 21, 2013]
118   Pulled changes to multi-chunk handling from libpng-1.6.0beta40.
119
120 Version 1.7.0alpha10 [February 5, 2013]
121   Make symbol prefixing work with the ARM neon optimizations. Also
122     allow pngpriv.h to be included for preprocessor definitions only, so
123     it can be used in non-C/C++ files.
124   Added png_get_palette_max() function.
125   Changed png_size_t to size_t throughout headers, make sRGB check numbers
126     consistent.
127   Fixed ARM support (Mans Rullgard).
128   Removed stray out-of-order #endif and #ifdef (Mans Rullgard).
129   Ported libpng 1.5 options.awk/dfn file handling to 1.7, fixed one bug.
130   Rebuilt Makefile.in, configure, etc., with autoconf-2.69 and automake-1.13.
131   Minor fixes to assembler changes, verified with a dummy .S file
132   Removed cc -E workround, corrected png_get_palette_max API. Tested on
133     SUN OS cc 5.9, which demonstrates the tokenization problem previously
134     avoided by using /lib/cpp.  Since all .dfn output is now protected
135     in double quotes unless it is to be macro substituted the fix should work
136     everywhere.
137
138 Version 1.7.0beta01 [February 15, 2013]
139   Enable parallel tests and rearrange TESTS order to take advantage of
140     the massive speed improvements use a make capable of parallel builds
141     on a multi-CPU machine and pass the right arguments to make (-j10000
142     for GNU make) to get the build to run in parallel.
143   Fixed previous support for Z_PREFIX in configure builds, corrected
144     sCAL APIs; some of these use floating point arithmetic so need to be
145     disabled if floating point arithmetic is switched off.  This is a quiet API
146     change - previously it appeared that the APIs were supported if fixed point
147     arithmetic was used internally, however they required certain APIs (floor,
148     modf, frexp, atof) that are part of C floating point support. Changed
149     png_fixed and the gamma code specific version of the same to avoid floor(),
150     which may be a library function (not an intrinsic). Removed unused #if 0
151     code.
152   Fixed make distcheck to skip over the test result files. They were
153     being included because the whole of the 'tests' directory is included,
154     fixed to just include the actual test files and tests/pngstest.  Also
155     reverted the previous erroneous change to remove the ${srcdir} from the
156     front of contrib, scripts, projects and added an explanation of what is
157     going on to Makefile.am
158   Fixed missing dependency in --prefix builds. The intermediate
159     internal 'prefix.h' file can only be generated correctly after pnglibconf.h,
160     however the dependency was not in Makefile.am.  The symptoms are
161     unpredictable depending on the order make chooses to build pngprefix.h and
162     pnglibconf.h, often the error goes unnoticed because there is a system
163     pnglibconf.h to use instead.
164   Accept "," as a separator in pnglibconf.dfa and allow for
165     continuation lines. This adds to the syntax of "option" and "chunk" lines,
166     allowing the elements to be separated by a "," at the end of an element and
167     interpreting a "," at end of line as a continuation - so the following line
168     is read.  The new syntax is optional and solely provided for readability.
169   Enclosed the new png_get_palette_max in #ifdef PNG_GET_PALETTE_MAX_SUPPORTED
170     block, and revised pnglibconf.h and pnglibconf.h.prebuilt accordingly.
171
172 Version 1.7.0beta02 [February 18, 2013]
173   Fixed a race condition in the creation of the build 'scripts' directory
174     while building with a parallel make.
175   Use approved/supported Android method to check for NEON, use Linux/POSIX
176     1003.1 API to check /proc/self/auxv avoiding buffer allocation and other
177     library calls (ported from libpng15).
178   Use parentheses more consistently in "#if defined(MACRO)" tests.
179   Folded long lines.
180
181 Version 1.7.0beta03 [February 22, 2013]
182   Reenabled code to allow zero length PLTE chunks for MNG.
183   Fixed ALIGNED_MEMORY support.
184   Allow run-time ARM NEON checking to be disabled. A new configure option:
185     --enable-arm-neon=always will stop the run-time checks. New checks
186     within arm/arm_init.c will cause the code not to be compiled unless
187     __ARM_NEON__ is set. This should make it fail safe (if someone asks
188     for it on then the build will fail if it can't be done.)
189   Updated the INSTALL document.
190
191 Version 1.7.0beta04 [February 27, 2013]
192   Revised INSTALL to recommend using CPPFLAGS instead of INCLUDES.
193   Revised scripts/makefile.freebsd to respect ZLIBLIB and ZLIBINC.
194   Revised scripts/dfn.awk to work with the buggy MSYS awk that has trouble
195     with CRLF line endings.
196
197 Version 1.7.0beta05 [March 5, 2013]
198   Avoid a possible memory leak in contrib/gregbook/readpng.c
199   Changed user chunk callback API to respect global and per chunk defaults.
200     Previously a return of 0 from a user chunk callback would result in the
201     chunk being saved (if this was safe, even if the chunk was unsafe-to-copy);
202     this change respects the defaults set by the application, so unknown chunks
203     can be discarded by default and known-safe ones preserved.
204   Corrected Android builds and corrected libpng.vers with symbol
205     prefixing. This adds an API to set optimization options externally,
206     providing an alternative and general solution for the non-portable
207     run-time tests used by the ARM Neon code.  It also makes those tests
208     compile and link on Android.  The order of settings vs options in
209     pnglibconf.h is reversed to allow settings to depend on options and
210     options can now set (or override) the defaults for settings.
211
212 Version 1.7.0beta06 [March 13, 2013]
213   Corrected simplified API default gamma for color-mapped output, added
214     a flag to change default. In 1.6.0 when the simplified API was used
215     to produce color-mapped output from an input image with no gamma
216     information the gamma assumed for the input could be different from
217     that assumed for non-color-mapped output.  In particular 16-bit depth
218     input files were assumed to be sRGB encoded, whereas in the 'direct'
219     case they were assumed to have linear data.  This was an error.  The
220     fix makes the simplified API treat all input files the same way and
221     adds a new flag to the png_image::flags member to allow the
222     application/user to specify that 16-bit files contain sRGB data
223     rather than the default linear.
224   Fixed bugs in the pngpixel and makepng test programs.
225   Fixed CMakelists.txt to allow building a single variant of the library
226     (Claudio Bley):
227   Introduced a PNG_LIB_TARGETS variable that lists all activated library
228     targets.  It is an error if this variable ends up empty, ie. you have
229     to build at least one library variant.
230   Made the *_COPY targets only depend on library targets actually being build.
231   Use PNG_LIB_TARGETS to unify a code path.
232   Changed the CREATE_SYMLINK macro to expect the full path to a file as the
233     first argument. When symlinking the filename component of that path is
234     determined and used as the link target.
235   Use copy_if_different in the CREATE_SYMLINK macro.
236   Eliminated two warnings from the Intel C compiler. The warnings are
237     technically valid, although a reasonable treatment of division would
238     show it to be incorrect.
239
240 Version 1.7.0beta07 [April 14, 2013]
241   Updated documentation of 1.5.x to 1.6.x changes in iCCP chunk handling.
242   Fixed incorrect warning of excess deflate data. End condition - the
243     warning would be produced if the end of the deflate stream wasn't read
244     in the last row.  The warning is harmless.
245   Corrected the test on user transform changes on read. It was in the
246     png_set of the transform function, but that doesn't matter unless the
247     transform function changes the rowbuf size, and that is only valid if
248     transform_info is called.
249   Corrected a misplaced closing bracket in contrib/libtests/pngvalid.c
250     (Flavio Medeiros).
251   Corrected length written to uncompressed iTXt chunks (Samuli Suominen).
252
253 Version 1.7.0beta08 [April 18, 2013]
254   Added contrib/tools/fixitxt.c, to repair the erroneous iTXt chunk length
255     written by libpng-1.6.0 and 1.6.1.
256   Disallow storing sRGB information when the sRGB is not supported.
257
258 Version 1.7.0beta09 [April 24, 2013]
259   Exposed PNG chunk types in png.h
260   Modified png_uint_32 macros/code to make as few assumptions as possible
261   Revised stack marking in arm/filter_neon.S and configure.ac
262   Ensure that NEON filter stuff is completely disabled when switched 'off'.
263     Previously the ARM NEON specific files were still built if the option
264     was switched 'off' as opposed to being explicitly disabled.
265
266 Version 1.7.0beta10 [April 24, 2013]
267   Attempt to fix the PNG_ARM_NEON configuration mess.
268
269 Version 1.7.0beta11 [April 26, 2013]
270   Test for 'arm*', not just 'arm' in the host_cpu configure variable.
271
272 Version 1.7.0beta12 [April 30, 2013]
273   Added png_app_warning for out-of-range unknown chunk index in
274     png_set_unknown_chunk_location().
275   Expanded manual paragraph about writing private chunks.
276   Avoid dereferencing NULL pointer possibly returned from
277      png_create_write_struct() (Andrew Church).
278
279 Version 1.7.0beta13 [May 12, 2013]
280   Revised contrib/pngminim/*/makefile to generate pnglibconf.h with the
281     right zlib header files.
282   Separated CPPFLAGS and CFLAGS in contrib/pngminim/*/makefile
283   Updated contrib/pngminus/pnm2png.c (Paul Stewart):
284     Check for EOF
285     Ignore "#" delimited comments in input file to pnm2png.c.
286     Fixed whitespace handling
287     Added a call to png_set_packing()
288     Initialize dimension values so if sscanf fails at least we have known
289       invalid values.
290   Calculate our own zlib windowBits when decoding rather than trusting the
291     CMF bytes in the PNG datastream.
292   Added an option to force maximum window size for inflating, which was
293     the behavior of libpng15 and earlier.
294   Added png-fix-itxt and png-fix-too-far-back to the built programs and
295     removed warnings from the source code and timepng that are revealed as
296     a result.
297   Detect wrong libpng versions linked to png-fix-too-far-back, which currently
298     only works with libpng versions that can be made to reliably fail when
299     the deflate data contains an out-of-window reference.  This means only
300     1.6 and later.
301   Attempt to detect configuration issues with png-fix-too-far-back, which
302     requires both the correct libpng and the correct zlib to function
303     correctly.
304   Check ZLIB_VERNUM for mismatches, enclose #error in quotes
305   Added information in the documentation about problems with and fixes for
306     the bad CRC and bad iTXt chunk situations.
307
308 Version 1.7.0beta14 [June 8, 2013]
309   Removed a redundant test in png_set_IHDR().
310   Added set(CMAKE_CONFIGURATION_TYPES ...) to CMakeLists.txt (Andrew Hundt)
311   Deleted set(CMAKE_BUILD_TYPE) block from CMakeLists.txt
312   Enclose the prototypes for the simplified write API in #ifdef STDIO/#endif
313   Make ARM NEON support work at compile time (not just configure time).
314     This moves the test on __ARM_NEON__ into pngconf.h to avoid issues when
315     using a compiler that compiles for multiple architectures at one time.
316   Removed PNG_FILTER_OPTIMIZATIONS and PNG_ARM_NEON_SUPPORTED from
317     pnglibconf.h, allowing more of the decisions to be made internally
318     (pngpriv.h) during the compile.  Without this, symbol prefixing is broken
319     under certain circumstances on ARM platforms.  Now only the API parts of
320     the optimizations ('check' vs 'api') are exposed in the public header files
321     except that the new setting PNG_ARM_NEON_OPT documents how libpng makes the
322     decision about whether or not to use the optimizations.
323   Protect symbol prefixing against CC/CPPFLAGS/CFLAGS useage.
324     Previous iOS/Xcode fixes for the ARM NEON optimizations moved the test
325     on __ARM_NEON__ from configure time to compile time.  This breaks symbol
326     prefixing because the definition of the special png_init_filter_functions
327     call was hidden at configure time if the relevant compiler arguments are
328     passed in CFLAGS as opposed to CC.  This change attempts to avoid all
329     the confusion that would result by declaring the init function even when
330     it is not used, so that it will always get prefixed.
331
332 Version 1.7.0beta15 [June 18, 2013]
333   Revised libpng.3 so that "doclifter" can process it.
334
335 Version 1.7.0beta16 [July 5, 2013]
336   Revised example.c to illustrate use of PNG_DEFAULT_sRGB and PNG_GAMMA_MAC_18
337     as parameters for png_set_gamma().  These have been available since
338     libpng-1.5.4.
339   Renamed contrib/tools/png-fix-too-far-back.c to pngfix.c and revised it
340     to check all compressed chunks known to libpng.
341   Updated documentation to show default behavior of benign errors correctly.
342   Added perfect hash code generation for lists of PNG chunks. This is
343     a work in progress; checked in for use in pngfix.c
344   Ported ARM no-read patch from libpng16.
345   Ported pngfix.c patches from libpng16.
346
347 Version 1.7.0beta17 [August 21, 2013]
348   Revised manual about changes in iTXt chunk handling made in libpng-1.6.0.
349   Added "/* SAFE */" comments in pngrutil.c and pngrtran.c where warnings
350     may be erroneously issued by code-checking applications.
351   Added information about png_set_options() to the manual.
352   Delay calling png_init_filter_functions() until a row with nonzero filter
353     is found.
354
355 Version 1.7.0beta18 [September 16, 2013]
356   Fixed inconsistent conditional compilation of png_chunk_unknown_handling()
357     prototype, definition, and usage.  Made it depend on
358     PNG_HANDLE_AS_UNKNOWN_SUPPORTED everywhere.
359
360 Version 1.7.0beta19 [September 30, 2013]
361   Reverted the change to unknown handling #defines; the change breaks 'NOREAD'
362     builds.
363   Fixed default behavior of ARM_NEON_API. If the ARM NEON API option is
364     compiled without the CHECK option it defaulted to on, not off.
365   Catch up with recent libpng16 changes; unknown handling and spelling
366     corrections
367   Avoid up-cast warnings in pngvalid.c. On ARM the alignment requirements of
368     png_modifier are greater than that of png_store and as a consequence
369     compilation of pngvalid.c results in a warning about increased alignment
370     requirements because of the bare cast to (png_modifier*).  The code is
371     safe, because the pointer is known to point to a stack allocated
372     png_modifier, but this change avoids the warning.
373   Fixed some grammatical changes and updated the png chunks list.
374
375 Version 1.7.0beta20 [October 13, 2013]
376   Made changes for compatibility with automake 1.14:
377     1) Added the 'compile' program to the list of programs that must be cleaned
378        in autogen.sh
379     2) Added 'subdir-objects' which causes .c files in sub-directories to be
380        compiled such that the corresponding .o files are also in the
381        sub-directory.  This is because automake 1.14 warns that the
382        current behavior of compiling to the top level directory may be removed
383        in the future.
384     3) Updated dependencies on pnglibconf.h to match the new .o locations and
385        added all the files in contrib/libtests and contrib/tools that depend
386        on pnglibconf.h
387     4) Added 'BUILD_SOURCES = pnglibconf.h'; this is the automake recommended
388        way of handling the dependencies of sources that are machine generated;
389        unfortunately it only works if the user does 'make all' or 'make check',
390        so the dependencies (3) are still required.
391   Cleaned up (char*) casts of zlib messages. The latest version of the Intel C
392     compiler complains about casting a string literal as (char*), so copied the
393     treatment of z_const from the library code into pngfix.c
394   Simplified error message code in pngunknown. The simplification has the
395     useful side effect of avoiding a bogus warning generated by the latest
396     version of the Intel C compiler (it objects to
397     condition ? string-literal : string-literal).
398   Make autogen.sh work with automake 1.13 as well as 1.14. Do this by always
399     removing the 1.14 'compile' script but never checking for it.
400
401 Version 1.7.0beta21 [November 2, 2013]
402   Added ARMv8 support (James Yu <james.yu at linaro.org>).  Added file
403     arm/filter_neon_intrinsics.c; enable with -mfpu=neon.
404   Revised pngvalid to generate size images with as many filters as it can
405     manage, limited by the number of rows.
406   Cleaned up ARM NEON compilation handling. The tests are now in pngpriv.h
407     and detect the broken GCC compilers.
408   Allow clang derived from older GCC versions to use ARM intrinsics. This
409     causes all clang builds that use -mfpu=neon to use the intrinsics code,
410     not the assembler code.  This has only been tested on iOS 7. It may be
411     necessary to exclude some earlier clang versions but this seems unlikely.
412   Changed NEON implementation selection mechanism. This allows assembler
413     or intrinsics to be turned on at compile time during the build by defining
414     PNG_ARM_NEON_IMPLEMENTATION to the correct value (2 or 1).  This macro
415     is undefined by default and the build type is selected in pngpriv.h.
416
417 Version 1.7.0beta22 [November 7, 2013]
418   Fixed #include in filter_neon_intrinsics.c and ctype macros. The ctype char
419     checking macros take an unsigned char argument, not a signed char.
420
421 Version 1.7.0beta23 [November 24, 2013]
422   Changed #ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED in pngpread.c to
423     #ifdef PNG_SET_UNKNOWN_CHUNKS_SUPPORTED to be consistent with
424     what is in pngpriv.h.
425   Moved prototype for png_handle_unknown() in pngpriv.h outside of
426     the #ifdef PNG_SET_UNKNOWN_CHUNKS_SUPPORTED/#endif block.
427   Added "-Wall" to CFLAGS in contrib/pngminim/*/makefile
428   Conditionally compile some unused functions reported by -Wall in
429     pngminim.
430   Fixed 'minimal' builds. Various obviously useful minimal configurations
431     don't build because of missing contrib/libtests test programs and
432     overly complex dependencies in scripts/pnglibconf.dfa. This change
433     adds contrib/conftest/*.dfa files that can be used in automatic build
434     scripts to ensure that these configurations continue to build.
435   Enabled WRITE_INVERT and WRITE_PACK in contrib/pngminim/encoder.
436   Fixed pngvalid 'fail' function declaration on the Intel C Compiler.
437     This reverts to the previous 'static' implementation and works round
438     the 'unused static function' warning by using PNG_UNUSED().
439
440 Version 1.7.0beta24 [December 15, 2013]
441   Removed or marked PNG_UNUSED some harmless "dead assignments" reported
442     by clang scan-build.
443   Changed tabs to 3 spaces in png_debug macros and changed '"%s"m'
444     to '"%s" m' to improve portability among compilers.
445   Changed png_free_default() to free() in pngtest.c
446   Tidied up pngfix inits and fixed pngtest no-write builds.
447   Bookkeeping: Moved functions around (no changes). Moved transform
448     function definitions before the place where they are called so that
449     they can be masde static. Move the intrapixel functions and the
450     grayscale palette builder out of the png?tran.c files. The latter
451     isn't a transform function and is no longer used internally, and the
452     former MNG specific functions are better placed in pngread/pngwrite.c
453   Made transform implementation functions static. This makes the internal
454     functions called by png_do_{read|write}_transformations static. On an
455     x86-64 DLL build (Gentoo Linux) this reduces the size of the text
456     segment of the DLL by 1208 bytes, about 0.6%. It also simplifies
457     maintenance by removing the declarations from pngpriv.h and allowing
458     easier changes to the internal interfaces.
459   Handle zero-length PLTE chunk or NULL palette with png_error()
460     instead of png_chunk_report(), which by default issues a warning
461     rather than an error, leading to later reading from a NULL pointer
462     (png_ptr->palette) in png_do_expand_palette(). This is CVE-2013-6954
463     and VU#650142.  Libpng-1.6.1 through 1.6.7 and libpng-1.7.0beta03
464     through 1.7.0beta23 are vulnerable.  Libpng-1.6.0 and earlier do not
465     have the bug.
466
467 Version 1.7.0beta25 [December 26, 2013]
468   Merged files with version 1.6.8 that have not changed since then.
469   Rebuilt configure scripts with automake-1.14.1 and autoconf-2.69
470
471 Version 1.7.0beta26 [January 1, 2014]
472   Added libpng 1.5 checks to pngvalid.c
473   Merged with 1.5 and 1.6 changes to create a single pngvalid.c
474   Added dSIG to chunk list in png.h
475   Removed #error macro from contrib/tools/pngfix.c (Thomas Klausner).
476   Merged pngrio.c, pngtrans.c, and pngwio.c with libpng-1.6.9
477   Fixed test programs for interlace options. Made pngvalid.c and
478     pngtest.c work correctly when READ_INTERLACING and/or WRITE_INTERLACING
479     are switched off.
480   Changed pngvalid.c to support libpng 1.5, which does not support
481     the PNG_MAXIMUM_INFLATE_WINDOW option, so #define it out when
482     appropriate in pngvalid.c
483   Allow unversioned links created on install to be disabled in configure.
484     In configure builds 'make install' changes/adds links like png.h
485     and libpng.a to point to the newly installed, versioned, files (e.g.
486     libpng17/png.h and libpng17.a). Three new configure options and some
487     rearrangement of Makefile.am allow creation of these links to be disabled.
488
489 Version 1.7.0beta27 [January 10, 2014]
490   Removed potentially misleading warning from png_check_IHDR().
491
492 Version 1.7.0beta28 [January 20, 2014]
493   Updated scripts/makefile.* to use CPPFLAGS (Cosmin).
494   Added clang attribute support (Cosmin).
495
496 Version 1.7.0beta29 [January 30, 2014]
497   Quiet an uninitialized memory warning from VS2013 in png_get_png().
498
499 Version 1.7.0beta30 [February 2, 2014]
500   Fixed a large number of instances where PNGCBAPI was omitted from
501     function definitions.
502   Added pngimage test program for png_read_png and png_write_png. This
503     is a work-in-progress; no tests are run automatically at present and
504     the program by virtue of exhaustively testing all the transforms is
505     very slow.
506
507 Version 1.7.0beta31 [February 6, 2014]
508   Make png_read_png() and png_write_png() prototypes in png.h depend
509     upon PNG_READ_SUPPORTED and PNG_WRITE_SUPPORTED.
510   Removed dependence on !PNG_READ_EXPAND_SUPPORTED for calling
511     png_set_packing() in png_read_png().
512   Completed full working pngimage test program and added two test scripts.
513   Fixed combination of ~alpha with shift. On read invert alpha, processing
514     occurred after shift processing, which causes the final values to be
515     outside the range that should be produced by the shift. Reversing the
516     order on read makes the two transforms work together correctly and mirrors
517     the order used on write.
518   Do not read invalid sBIT chunks. Previously libpng only checked sBIT
519     values on write, so a malicious PNG writer could therefore cause
520     the read code to return an invalid sBIT chunk, which might lead to
521     application errors or crashes.  Such chunks are now skipped (with
522     chunk_benign_error).
523   Restored a line, "c = b;", that was inadvertently deleted from the
524     PAETH filtering code from libpng-1.7.0beta24/pngrutil.c. Deleted
525     the other instance of "c = b;" which is the one that triggered a
526     scan-build warning.
527   Support builds with unsupported PNG_TRANSFORM_* values.  All of the
528     PNG_TRANSFORM_* values are always defined in png.h and, because they
529     are used for both read and write in some cases, it is not reliable
530     to #if out ones that are totally unsupported. This change adds error
531     detection in png_read_image() and png_write_image() to do a
532     png_app_error() if the app requests something that cannot be done
533     and it adds corresponding code to pngimage.c to handle such options
534     by not attempting to test them.
535
536 Send comments/corrections/commendations to png-mng-implement at lists.sf.net
537 (subscription required; visit
538 https://lists.sourceforge.net/lists/listinfo/png-mng-implement
539 to subscribe)
540 or to glennrp at users.sourceforge.net
541
542 Glenn R-P