2 Libpng 1.6.0 - February 14, 2013
4 This is a public release of libpng, intended for use in production codes.
6 Files available for download:
8 Source files with LF line endings (for Unix/Linux) and with a
11 libpng-1.6.0.tar.xz (LZMA-compressed, recommended)
14 Source files with CRLF line endings (for Windows), without the
17 lpng160.7z (LZMA-compressed, recommended)
22 libpng-1.6.0-README.txt
23 libpng-1.6.0-LICENSE.txt
25 Changes since the last public release (1.5.7):
27 Removed machine-generated configure files from the GIT repository (they will
28 continue to appear in the tarball distributions and in the libpng15 and
29 earlier GIT branches).
30 Restored the new 'simplified' API, which was started in libpng-1.5.7beta02
31 but later deleted from libpng-1.5.7beta05.
32 Added example programs and test program pngstest for the new 'simplified' API.
33 Added ANSI-C (C90) headers and require them, and take advantage of the
34 change. Also fixed some of the projects/* and contrib/* files that needed
35 updates for libpng16 and the move of pngvalid.c.
36 With this change the required ANSI-C header files are assumed to exist: the
37 implementation must provide float.h, limits.h, stdarg.h and stddef.h and
38 libpng relies on limits.h and stddef.h existing and behaving as defined
39 (the other two required headers aren't used). Non-ANSI systems that don't
40 have stddef.h or limits.h will have to provide an appropriate fake
41 containing the relevant types and #defines.
42 The use of FAR/far has been eliminated and the definition of png_alloc_size_t
43 is now controlled by a flag so that 'small size_t' systems can select it
44 if necessary. Libpng 1.6 may not currently work on such systems -- it
45 seems likely that it will ask 'malloc' for more than 65535 bytes with any
46 image that has a sufficiently large row size (rather than simply failing
48 New tools directory containing tools used to generate libpng code.
49 Fixed race conditions in parallel make builds. With higher degrees of
50 parallelism during 'make' the use of the same temporary file names such
51 as 'dfn*' can result in a race where a temporary file from one arm of the
52 build is deleted or overwritten in another arm. This changes the
53 temporary files for suffix rules to always use $* and ensures that the
54 non-suffix rules use unique file names.
55 Correct configure builds where build and source directories are separate.
56 The include path of 'config.h' was erroneously made relative in pngvalid.c
58 Start-up code size improvements, error handler flexibility. These changes
59 alter how the tricky allocation of the initial png_struct and png_info
60 structures are handled. png_info is now handled in pretty much the same
61 way as everything else, except that the allocations handle NULL return
62 silently. png_struct is changed in a similar way on allocation and on
63 deallocation a 'safety' error handler is put in place (which should never
64 be required). The error handler itself is changed to permit mismatches
65 in the application and libpng error buffer size; however, this means a
66 silent change to the API to return the jmp_buf if the size doesn't match
67 the size from the libpng compilation; libpng now allocates the memory and
68 this may fail. Overall these changes result in slight code size
69 reductions; however, this is a reduction in code that is always executed
70 so is particularly valuable. Overall on a 64-bit system the libpng DLL
71 decreases in code size by 1733 bytes. pngerror.o increases in size by
72 about 465 bytes because of the new functionality.
73 Added png_convert_to_rfc1123_buffer() and deprecated png_convert_to_rfc1123()
74 to avoid including a spurious buffer in the png_struct.
75 Regenerated configure scripts with automake-1.11.2
76 Eliminated png_info_destroy(). It is now used only in png.c and only calls
77 one other internal function and memset().
78 Enabled png_get_sCAL_fixed() if floating point APIs are enabled. Previously
79 it was disabled whenever internal fixed point arithmetic was selected,
80 which meant it didn't exist even on systems where FP was available but not
82 Added pngvalid.c compile time checks for const APIs.
83 Implemented 'restrict' for png_info and png_struct. Because of the way
84 libpng works both png_info and png_struct are always accessed via a
85 single pointer. This means adding C99 'restrict' to the pointer gives
86 the compiler some opportunity to optimize the code. This change allows
88 Moved AC_MSG_CHECKING([if libraries can be versioned]) later to the proper
89 location in configure.ac (Gilles Espinasse).
90 Changed png_memcpy to C assignment where appropriate. Changed all those
91 uses of png_memcpy that were doing a simple assignment to assignments
92 (all those cases where the thing being copied is a non-array C L-value).
93 Added some error checking to png_set_*() routines.
94 Removed the reference to the non-exported function png_memcpy() from
96 Fixed the Visual C 64-bit build - it requires jmp_buf to be aligned, but
97 it had become misaligned.
98 Revised contrib/pngminus/pnm2png.c to avoid warnings when png_uint_32
99 and unsigned long are of different sizes.
100 Updated manual with description of the simplified API.
101 Fix bug in pngerror.c: some long warnings were being improperly truncated
102 (CVE-2011-3464, bug introduced in libpng-1.5.4).
103 Increased the formatted warning buffer to 192 bytes.
104 Fixed Min/GW uninstall to remove libpng.dll.a
105 Eliminated Intel icc/icl compiler warnings. The Intel (GCC derived)
106 compiler issues slightly different warnings from those issued by the
107 current vesions of GCC. This eliminates those warnings by
108 adding/removing casts and small code rewrites.
109 Updated configure.ac from autoupdate: added --enable-werror option.
110 Also some layout regularization and removal of introduced tab characters
111 (replaced with 3-character indentation). Obsolete macros identified by
112 autoupdate have been removed; the replacements are all in 2.59 so
113 the pre-req hasn't been changed. --enable-werror checks for support
114 for -Werror (or the given argument) in the compiler. This mimics the
115 gcc configure option by allowing -Werror to be turned on safely; without
116 the option the tests written in configure itself fail compilation because
117 they cause compiler warnings.
118 Rewrote autogen.sh to run autoreconf instead of running tools one-by-one.
119 Conditionalize the install rules for MINGW and CYGWIN in CMakeLists.txt and
120 set CMAKE_LIBRARY_OUTPUT_DIRECTORY to "lib" on all platforms (C. Yapp).
121 Freeze libtool files in the 'scripts' directory. This version of autogen.sh
122 attempts to dissuade people from running it when it is not, or should not,
123 be necessary. In fact, autogen.sh does not work when run in a libpng
124 directory extracted from a tar distribution anymore. You must run it in
126 Added two images to contrib/pngsuite (1-bit and 2-bit transparent grayscale),
127 and renamed three whose names were inconsistent with those in
129 Check libtool/libtoolize version number (2.4.2) in configure.ac
130 Moved automake options to AM_INIT_AUTOMAKE in configure.ac
131 Added color-tests, silent-rules (Not yet implemented in Makefile.am) and
132 version checking to configure.ac
133 Cleaned up pngpriv.h to consistently declare all functions and data.
134 Also eliminated PNG_CONST_DATA, which is apparently not needed but we
135 can't be sure until it is gone.
136 Added symbol prefixing that allows all the libpng external symbols
137 to be prefixed (suggested by Reuben Hawkins).
138 Updated "ftbb*.png" list in the owatcom and vstudio projects.
139 Added Z_SOLO for zlib-1.2.6+ and correct pngstest tests
140 Revised INSTALL information about autogen.sh.
141 Updated list of test images in CMakeLists.txt
142 Corrected estimate of error in libpng png_set_rgb_to_gray API. The API is
143 extremely inaccurate for sRGB conversions because it uses an 8-bit
144 intermediate linear value and it does not use the sRGB transform, so it
145 suffers from the known instability in gamma transforms for values close
146 to 0 (see Poynton). The net result is that the calculation has a maximum
147 error of 14.99/255; 0.5/255^(1/2.2). pngstest now uses 15 for the
148 permitted 8-bit error. This may still not be enough because of arithmetic
150 Removed some unused arrays (with #ifdef) from png_read_push_finish_row().
151 Fixed a memory overwrite bug in simplified read of RGB PNG with
152 non-linear gamma Also bugs in the error checking in pngread.c and changed
153 quite a lot of the checks in pngstest.c to be correct; either correctly
154 written or not over-optimistic. The pngstest changes are insufficient to
155 allow all possible RGB transforms to be passed; pngstest cmppixel needs
156 to be rewritten to make it clearer which errors it allows and then changed
157 to permit known inaccuracies.
158 Removed tests for no-longer-used *_EMPTY_PLTE_SUPPORTED from pngstruct.h
159 Fixed fixed/float API export conditionals. 1) If FIXED_POINT or
160 FLOATING_POINT options were switched off, png.h ended up with lone ';'
161 characters. This is not valid ANSI-C outside a function. The ';'
162 characters have been moved inside the definition of PNG_FP_EXPORT and
163 PNG_FIXED_EXPORT. 2) If either option was switched off, the declaration
164 of the corresponding functions were completely omitted, even though some
165 of them are still used internally. The result is still valid, but
166 produces warnings from gcc with some warning options (including -Wall). The
167 fix is to cause png.h to declare the functions with PNG_INTERNAL_FUNCTION
168 when png.h is included from pngpriv.h.
169 Check for invalid palette index while reading paletted PNG. When one is
170 found, issue a warning.
171 Fixed CVE-2011-3026 buffer overrun bug. Deal more correctly with the test
172 on iCCP chunk length. Also removed spurious casts that may hide problems
174 Eliminated redundant png_push_read_tEXt|zTXt|iTXt|unknown code from
175 pngpread.c and use the sequential png_handle_tEXt, etc., in pngrutil.c;
176 now that png_ptr->buffer is inaccessible to applications, the special
177 handling is no longer useful.
178 Added PNG_SAFE_LIMITS feature to pnglibconf.dfa, pngpriv.h, and new
179 pngusr.dfa to reset the user limits to safe ones if PNG_SAFE_LIMITS is
180 defined. To enable, use "CPPFLAGS=-DPNG_SAFE_LIMITS_SUPPORTED=1" on the
181 configure command or put #define PNG_SAFE_LIMITS_SUPPORTED in
182 pnglibconf.h.prebuilt and pnglibconf.h.
183 Added information about the new limits in the manual.
184 Removed unused "current_text" members of png_struct and the png_free()
185 of png_ptr->current_text from pngread.c
186 Added PNG_IMAGE_FLAG_FAST for the benefit of applications that store
187 intermediate files, or intermediate in-memory data, while processing
188 image data with the simplified API. The option makes the files larger
189 but faster to write and read. pngstest now uses this by default; this
190 can be disabled with the --slow option.
191 Improved pngstest fine tuning of error numbers, new test file generator.
192 The generator generates images that test the full range of sample values,
193 allow the error numbers in pngstest to be tuned and checked. makepng
194 also allows generation of images with extra chunks, although this is
195 still work-in-progress.
196 Fixed some bugs in ICC profile writing. The code should now accept
197 all potentially valid ICC profiles and reject obviously invalid ones.
198 It now uses png_error() to do so rather than casually writing a PNG
199 without the necessary color data.
200 Removed whitespace from the end of lines in all source files and scripts.
201 Added tests for invalid palette index while reading and writing.
202 Changed png_inflate() and calling routines to avoid overflow problems.
203 This is an intermediate check-in that solves the immediate problems and
204 introduces one performance improvement (avoiding a copy via png_ptr->zbuf.)
205 Further changes will be made to make ICC profile handling more secure.
206 Added contrib/libtests/tarith.c to test internal arithmetic functions from
207 png.c. This is a libpng maintainer program used to validate changes to the
208 internal arithmetic functions.
209 Made read 'inflate' handling like write 'deflate' handling. The read
210 code now claims and releases png_ptr->zstream, like the write code.
211 The bug whereby the progressive reader failed to release the zstream
212 is now fixed, all initialization is delayed, and the code checks for
213 changed parameters on deflate rather than always calling
214 deflatedEnd/deflateInit.
215 Validate the zTXt strings in pngvalid.
216 Added code to validate the windowBits value passed to deflateInit2().
217 If the call to deflateInit2() is wrong a png_warning will be issued
218 (in fact this is harmless, but the PNG data produced may be sub-optimal).
219 Fixed PNG_LIBPNG_BUILD_BASE_TYPE definition.
220 Reject all iCCP chunks after the first, even if the first one is invalid.
221 Deflate/inflate was reworked to move common zlib calls into single
222 functions [rw]util.c. A new shared keyword check routine was also added
223 and the 'zbuf' is no longer allocated on progressive read. It is now
224 possible to call png_inflate() incrementally.
225 If benign errors are disabled use maximum window on ancilliary inflate.
226 This works round a bug introduced in 1.5.4 where compressed ancillary
227 chunks could end up with a too-small windowBits value in the deflate
229 Issue a png_benign_error() instead of png_warning() about bad palette index.
230 In pngtest, treat benign errors as errors if "-strict" is present.
231 Fixed a compiler warning under Cygwin (Windows-7, 32-bit system)
232 Revised example.c to put text strings in a temporary character array
233 instead of directly assigning string constants to png_textp members.
234 This avoids compiler warnings when -Wwrite-strings is enabled.
235 Added output flushing to aid debugging under Visual Studio. Unfortunately
236 this is necessary because the VS2010 output window otherwise simply loses
237 the error messages on error (they weren't flushed to the window before
238 the process exited, apparently!)
239 Added configuration support for benign errors and changed the read
240 default. Also changed some warnings in the iCCP and sRGB handling
241 from to benign errors. Configuration now makes read benign
242 errors warnings and write benign errors to errors by default (thus
243 changing the behavior on read). The simplified API always forces
244 read benign errors to warnings (regardless of the system default, unless
245 this is disabled in which case the simplified API can't be built.)
246 Work around for duplicate row start calls; added warning messages.
247 This turns on PNG_FLAG_DETECT_UNINITIALIZED to detect app code that
248 fails to call one of the 'start' routines (not enabled in libpng-1.5
249 because it is technically an API change, since it did normally work
250 before.) It also makes duplicate calls to png_read_start_row (an
251 internal function called at the start of the image read) benign, as
252 they were before changes to use png_inflate_claim. Somehow webkit is
253 causing this to happen; this is probably a mis-feature in the zlib
254 changes so this commit is only a work-round.
255 Removed erroneous setting of DETECT_UNINITIALIZED and added more
256 checks. The code now does a png_error if an attempt is made to do the
257 row initialization twice; this is an application error and it has
258 serious consequences because the transform data in png_struct is
259 changed by each call.
260 Added application error reporting and added chunk names to read
261 benign errors; also added --strict to pngstest - not enabled
262 yet because a warning is produced.
263 Avoid the double gamma correction warning in the simplified API.
264 This allows the --strict option to pass in the pngstest checks
265 Changed chunk handler warnings into benign errors, incrementally load iCCP
266 Added checksum-icc.c to contrib/tools
267 Prevent PNG_EXPAND+PNG_SHIFT doing the shift twice.
268 Recognize known sRGB ICC profiles while reading; prefer writing the
269 iCCP profile over writing the sRGB chunk, controlled by the
270 PNG_sRGB_PROFILE_CHECKS option.
271 Revised png_set_text_2() to avoid potential memory corruption (fixes
273 Revised scripts/makefile.darwin: use system zlib; remove quotes around
274 architecture list; add missing ppc architecture; add architecture options
275 to shared library link; don't try to create a shared lib based on missing
277 Enable png_set_check_for_invalid_index() for both read and write.
278 Removed #ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED in pngpriv.h around
279 declaration of png_handle_unknown().
280 Added -lssp_nonshared in a comment in scripts/makefile.freebsd
281 and changed deprecated NOOBJ and NOPROFILE to NO_OBJ and NO_PROFILE.
282 Removed need for -Wno-cast-align with clang. clang correctly warns on
283 alignment increasing pointer casts when -Wcast-align is passed. This
284 fixes the cases that clang warns about either by eliminating the
285 casts from png_bytep to png_uint_16p (pngread.c), or, for pngrutil.c
286 where the cast is previously verified or pngstest.c where it is OK, by
287 introducing new png_aligncast macros to do the cast in a way that clang
289 Revised CMakeLists.txt to not attempt to make a symlink under mingw.
290 Made fixes for new optimization warnings from gcc 4.7.0. The compiler
291 performs an optimization which is safe; however it then warns about it.
292 Changing the type of 'palette_number' in pngvalid.c removes the warning.
293 Do not depend upon a GCC feature macro being available for use in generating
294 the linker mapfile symbol prefix.
295 Improved performance of new do_check_palette_indexes() function (only
296 update the value when it actually increases, move test for whether
297 the check is wanted out of the function.
298 Don't check palette indexes if num_palette is 0 (as it can be in MNG files).
299 Revised png_set_keep_unknown_chunks() so num_chunks < 0 means ignore all
300 unknown chunks and all known chunks except for IHDR, PLTE, tRNS, IDAT,
301 and IEND. Previously it only meant ignore all unknown chunks, the
302 same as num_chunks == 0. Revised png_image_skip_unused_chunks() to
303 provide a list of chunks to be processed instead of a list of chunks to
304 ignore. Revised contrib/gregbook/readpng2.c accordingly.
305 Removed scripts/makefile.cegcc from the *.zip and *.7z distributions; it
306 depends on configure, which is not included in those archives.
307 Moved scripts/chkfmt to contrib/tools.
308 Changed "a+w" to "u+w" in Makefile.in to fix CVE-2012-3386.
309 Do not compile PNG_DEPRECATED, PNG_ALLOC and PNG_PRIVATE when __GNUC__ < 3.
310 Do not use __restrict when GNUC is <= 3.1
311 Removed references to png_zalloc() and png_zfree() from the manual.
312 Fixed configurations where floating point is completely disabled. Because
313 of the changes to support symbol prefixing PNG_INTERNAL_FUNCTION declares
314 floating point APIs during libpng builds even if they are completely
315 disabled. This requires the png floating point types (png_double*) to be
316 declared even though the functions are never actually defined. This
317 change provides a dummy definition so that the declarations work, yet any
318 implementation will fail to compile because of an incomplete type.
319 Re-eliminated the use of strcpy() in pngtest.c. An unncessary use of
320 strcpy() was accidentally re-introduced in libpng16; this change replaces
322 Eliminated use of png_sizeof(); use sizeof() instead.
323 Use a consistent style for (sizeof type) and (sizeof (array))
324 Cleanup of png_set_filler(). This function does very different things on
325 read and write. In libpng 1.6 the two cases can be distinguished and
326 considerable code cleanup, and extra error checking, is possible. This
327 makes calls on the write side that have no effect be ignored with a
328 png_app_error(), which can be disabled in the app using
329 png_set_benign_errors(), and removes the spurious use of usr_channels
331 Insist on autotools 1.12.1 for git builds because there are security issues
332 with 1.12 and insisting on anything less would allow 1.12 to be used.
333 Removed info_ptr->signature[8] from WRITE-only builds.
334 Add some conditions for compiling png_fixed(). This is a small function
335 but it requires "-lm" on some platforms.
336 Cause pngtest --strict to fail on any warning from libpng (not just errors)
337 and cause it not to fail at the comparison step if libpng lacks support
338 for writing chunks that it reads from the input (currently only implemented
339 for compressed text chunks).
340 Make all three "make check" test programs work without READ or WRITE support.
341 Now "make check" will succeed even if libpng is compiled with -DPNG_NO_READ
342 or -DPNG_NO_WRITE. The tests performed are reduced, but the basic reading
343 and writing of a PNG file is always tested by one or more of the tests.
344 Consistently use strlen(), memset(), memcpy(), and memcmp() instead of the
345 png_strlen(), png_memset(), png_memcpy(), and png_memcmp() macros.
346 Removed the png_sizeof(), png_strlen(), png_memset(), png_memcpy(), and
348 Work around gcc 3.x and Microsoft Visual Studio 2010 complaints. Both object
349 to the split initialization of num_chunks.
350 Unknown handling fixes and clean up. This adds more correct option
351 control of the unknown handling, corrects the pre-existing bug where
352 the per-chunk 'keep' setting is ignored and makes it possible to skip
353 IDAT chunks in the sequential reader (broken in earlier 1.6 versions).
354 There is a new test program, test-unknown.c, which is a work in progress
355 (not currently part of the test suite). Comments in the header files now
356 explain how the unknown handling works.
357 Allow fine grain control of unknown chunk APIs. This change allows
358 png_set_keep_unknown_chunks() to be turned off if not required and causes
359 both read and write to behave appropriately (on read this is only possible
360 if the user callback is used to handle unknown chunks). The change
361 also removes the support for storing unknown chunks in the info_struct
362 if the only unknown handling enabled is via the callback, allowing libpng
363 to be configured with callback reading and none of the unnecessary code.
364 Corrected fix for unknown handling in pngtest. This reinstates the
365 libpng handling of unknown chunks other than vpAg and sTER (including
366 unsafe-to-copy chunks which were dropped before) and eliminates the
367 repositioning of vpAg and sTER in pngtest.png by changing pngtest.png
368 (so the chunks are where libpng would put them).
369 Added "tunknown" test and corrected a logic error in png_handle_unknown()
370 when SAVE support is absent. Moved the shell test scripts for
371 contrib/libtests from the libpng top directory to contrib/libtests.
372 png_handle_unknown() must always read or skip the chunk, if
373 SAVE_UNKNOWN_CHUNKS is turned off *and* the application does not set
374 a user callback an unknown chunk will not be read, leading to a read
375 error, which was revealed by the "tunknown" test.
376 Cleaned up and corrected ICC profile handling.
377 contrib/libtests/makepng: corrected 'rgb' and 'gray' cases. profile_error
378 messages could be truncated; made a correct buffer size calculation and
379 adjusted pngerror.c appropriately. png_icc_check_* checking improved;
380 changed the functions to receive the correct color type of the PNG on read
381 or write and check that it matches the color space of the profile (despite
382 what the comments said before, there is danger in assuming the app will
383 cope correctly with an RGB profile on a grayscale image and, since it
384 violates the PNG spec, allowing it is certain to produce inconsistent
385 app behavior and might even cause app crashes.) Check that profiles
386 contain the tags needed to process the PNG (tags all required by the ICC
387 spec). Removed unused PNG_STATIC from pngpriv.h.
388 Fixed the simplified API example programs and improved the error message
389 if the version field is not set.
390 Updated simplified API synopses and description of the png_image structure
392 Made makepng and pngtest produce identical PNGs, add "--relaxed" option
393 to pngtest. The "--relaxed" option turns off the benign errors that are
394 enabled by default in pre-RC builds. makepng can now write ICC profiles
395 where the length has not been extended to a multiple of 4, and pngtest
396 now intercepts all libpng errors, allowing the previously-introduced
397 "--strict test" on no warnings to actually work.
398 Added a work around for GCC 4.2 optimization bug.
399 Marked the broken (bad white point) original HP sRGB profiles correctly and
401 Added -DZ_SOLO to contrib/pngminim/*/makefile to work with zlib-1.2.7
402 Use /MDd for vstudio debug builds. Also added pngunkown to the vstudio
403 builds, fixed build errors and corrected a minor exit code error in
404 pngvalid if the 'touch' file name is invalid.
405 Add updated WARNING file to projects/vstudio from libpng 1.5/vstudio
406 Fixed build when using #define PNG_NO_READ_GAMMA in png_do_compose() in
407 pngrtran.c (Domani Hannes).
408 Made pngvalid so that it will build outside the libpng source tree.
409 Made PNG_NO_READ_GAMMA switch off interfaces that depend on READ_GAMMA.
410 Prior to 1.6.0 switching off READ_GAMMA did unpredictable things to the
411 interfaces that use it (specifically, png_do_background in 1.4 would
412 simply display composite for grayscale images but do composition
413 with the incorrect arithmetic for color ones). In 1.6 the semantic
414 of -DPNG_NO_READ_GAMMA is changed to simply disable any interface that
415 depends on it; this obliges people who set it to consider whether they
416 really want it off if they happen to use any of the interfaces in
417 question (typically most users who disable it won't).
418 Added the ability for contrib/libtests/makepng.c to make a PNG with just one
419 color. This is useful for debugging pngstest color inaccuracy reports.
420 Made png_user_version_check() ok to use with libpng version 1.10.x and later.
421 Fixed typo in png.c (PNG_SET_CHUNK_MALLOC_MAX should be PNG_CHUNK_MALLOC_MAX)
422 that causes the MALLOC_MAX limit not to work (John Bowler)
423 Change png_warning() to png_app_error() in pngwrite.c and comment the
424 fall-through condition.
425 Change png_warning() to png_app_warning() in png_write_tRNS().
426 Rearranged the ARM-NEON optimizations: Isolated the machine specific code
427 to the hardware subdirectory and added comments to pngrutil.c so that
428 implementors of other optimizations know what to do.
429 Fixed cases of unquoted DESTDIR in Makefile.am
430 Cleaned up whitespace in the synopsis portion of the manpage "libpng.3"
431 Disassembled the version number in scripts/options.awk (necessary for
433 Made default Zlib compression settings be configurable. This adds #defines to
434 pnglibconf.h to control the defaults.
435 Fixed Windows build issues, enabled ARM compilation. Various warnings issued
436 by earlier versions of GCC fixed for Cygwin and Min/GW (which both use old
437 GCCs.) ARM support is enabled by default in zlib.props (unsupported by
438 Microsoft) and ARM compilation is made possible by deleting the check for
439 x86. The test programs cannot be run because they are not signed.
440 Discontinued distributing libpng-1.x.x.tar.bz2.
441 Discontinued distributing libpng-1.7.0-1.6.0-diff.txt and similar.
442 Rebuilt Makefile.in, configure, etc., with autoconf-2.69 and automake-1.12.5.
443 Fixed 'make distcheck' on SUN OS - libpng.so was not being removed
444 Fixed conceivable but difficult to repro overflow. Also added two test
445 programs to generate and test a PNG which should have the problem.
446 Added overflow detection in png_set_sPLT() and png_set_text_2().
447 Use consistent handling of overflows in text, sPLT and unknown png_set_* APIs
448 Added png_get_palette_max() function.
449 Fixed missing dependency in --prefix builds The intermediate
450 internal 'prefix.h' file can only be generated correctly after
451 pnglibconf.h, however the dependency was not in Makefile.am. The
452 symptoms are unpredictable depending on the order make chooses to
453 build pngprefix.h and pnglibconf.h, often the error goes unnoticed
454 because there is a system pnglibconf.h to use instead.
455 Enclosed the new png_get_palette_max in #ifdef PNG_GET_PALETTE_MAX_SUPPORTED
456 block, and revised pnglibconf.h and pnglibconf.h.prebuilt accordingly.
458 Send comments/corrections/commendations to png-mng-implement at lists.sf.net
459 (subscription required; visit
460 https://lists.sourceforge.net/lists/listinfo/png-mng-implement
462 or to glennrp at users.sourceforge.net