2 Libpng 1.7.0beta31 - February 6, 2014
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.
7 Files available for download:
9 Source files with LF line endings (for Unix/Linux) and with a
12 1.7.0beta31.tar.xz (LZMA-compressed, recommended)
15 Source files with CRLF line endings (for Windows), without the
18 lp170b31.7z (LZMA-compressed, recommended)
23 1.7.0beta31-README.txt
24 1.7.0beta31-LICENSE.txt
25 Gnupg/*.asc (PGP armored detached signatures)
27 Changes since the last public release (1.6.0):
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
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)
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
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.
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
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
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
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
90 Disassembled the version number in scripts/options.awk (necessary for
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.
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.
107 Version 1.7.0alpha06 [January 1, 2013]
108 Fixed 'make distcheck' on SUN OS - libpng.so was not being removed
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.
114 Version 1.7.0alpha08 [January 17, 2013]
115 Corrected previous attempt at overflow detection in png_set_unknown_chunks().
117 Version 1.7.0alpha09 [January 21, 2013]
118 Pulled changes to multi-chunk handling from libpng-1.6.0beta40.
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
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
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
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.
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.
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.
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.
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.
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
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.
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
251 Corrected length written to uncompressed iTXt chunks (Samuli Suominen).
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.
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.
266 Version 1.7.0beta10 [April 24, 2013]
267 Attempt to fix the PNG_ARM_NEON configuration mess.
269 Version 1.7.0beta11 [April 26, 2013]
270 Test for 'arm*', not just 'arm' in the host_cpu configure variable.
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).
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):
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
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
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
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
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.
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.
332 Version 1.7.0beta15 [June 18, 2013]
333 Revised libpng.3 so that "doclifter" can process it.
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
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.
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
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.
360 Version 1.7.0beta19 [September 30, 2013]
361 Reverted the change to unknown handling #defines; the change breaks 'NOREAD'
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
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.
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
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
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
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.
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.
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.
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
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().
440 Version 1.7.0beta24 [December 15, 2013]
441 Removed or marked PNG_UNUSED some harmless "dead assignments" reported
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
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
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
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.
489 Version 1.7.0beta27 [January 10, 2014]
490 Removed potentially misleading warning from png_check_IHDR().
492 Version 1.7.0beta28 [January 20, 2014]
493 Updated scripts/makefile.* to use CPPFLAGS (Cosmin).
494 Added clang attribute support (Cosmin).
496 Version 1.7.0beta29 [January 30, 2014]
497 Quiet an uninitialized memory warning from VS2013 in png_get_png().
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
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
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
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.
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
540 or to glennrp at users.sourceforge.net