summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/libpng/CHANGES
diff options
context:
space:
mode:
Diffstat (limited to 'src/3rdparty/libpng/CHANGES')
-rw-r--r--src/3rdparty/libpng/CHANGES280
1 files changed, 273 insertions, 7 deletions
diff --git a/src/3rdparty/libpng/CHANGES b/src/3rdparty/libpng/CHANGES
index fa5f2aa..628d7f0 100644
--- a/src/3rdparty/libpng/CHANGES
+++ b/src/3rdparty/libpng/CHANGES
@@ -15,7 +15,7 @@ Version 0.3
fixed some bugs in writer
interfaced with zlib 0.5
added K&R support
- added check for 64 KB blocks for 16 bit machines
+ added check for 64 KB blocks for 16-bit machines
Version 0.4
cleaned up code and commented code
@@ -74,7 +74,7 @@ Version 0.82 [September, 1995]
Version 0.85 [December, 1995]
added more medium model code (almost everything's a far)
added i/o, error, and memory callback functions
- fixed some bugs (16 bit, 4 bit interlaced, etc.)
+ fixed some bugs (16-bit, 4-bit interlaced, etc.)
added first run progressive reader (barely tested)
Version 0.86 [January, 1996]
@@ -2935,7 +2935,7 @@ Version 1.5.0beta36 [July 29, 2010]
PNG_INTERLACE transform and to get the number of rows in the current
pass.
A new test program, pngvalid.c, validates the gamma code.
- Errors in the 16 bit gamma correction (overflows) have been corrected.
+ Errors in the 16-bit gamma correction (overflows) have been corrected.
cHRM chunk testing is done consistently (previously the floating point
API bypassed it, because the test really didn't work on FP, now the test
is performed on the actual values to be stored in the PNG file so it
@@ -3208,9 +3208,9 @@ Version 1.5.1beta09 [January 24, 2011]
pngvalid contains tests of transforms, which tests are currently disabled
because they are incompletely tested. gray_to_rgb was failing to expand
the bit depth for smaller bit depth images; this seems to be a long
- standing error and resulted, apparently, in invalid output. The
- documentation did not accurately describe what libpng really does when
- converting RGB to gray.
+ standing error and resulted, apparently, in invalid output
+ (CVE-2011-0408, CERT VU#643140). The documentation did not accurately
+ describe what libpng really does when converting RGB to gray.
Version 1.5.1beta10 [January 27, 2010]
Fixed incorrect examples of callback prototypes in the manual, that were
@@ -3227,7 +3227,7 @@ Version 1.5.1beta10 [January 27, 2010]
Version 1.5.1beta11 [January 28, 2011]
Changed PNG_UNUSED from "param=param;" to "{if(param){}}".
Corrected local variable type in new API png_process_data_skip()
- The type was self-evidently incorrect but only causes problems on 64 bit
+ The type was self-evidently incorrect but only causes problems on 64-bit
architectures.
Added transform tests to pngvalid and simplified the arguments.
@@ -3242,6 +3242,272 @@ Version 1.5.1rc02 [January 31, 2011]
Version 1.5.1 [February 3, 2011]
No changes.
+Version 1.5.2beta01 [February 13, 2011]
+ More -Wshadow fixes for older gcc compilers. Older gcc versions apparently
+ check formal parameters names in function declarations (as well as
+ definitions) to see if they match a name in the global namespace.
+ Revised PNG_EXPORTA macro to not use an empty parameter, to accommodate the
+ old VisualC++ preprocessor.
+ Turned on interlace handling in png_read_png().
+ Fixed gcc pendantic warnings.
+ Handle longjmp in Cygwin.
+ Fixed png_get_current_row_number() in the interlaced case.
+ Cleaned up ALPHA flags and transformations.
+ Implemented expansion to 16 bits.
+
+Version 1.5.2beta02 [February 19, 2011]
+ Fixed mistake in the descriptions of user read_transform and write_transform
+ function prototypes in the manual. The row_info struct is png_row_infop.
+ Reverted png_get_current_row_number() to previous (1.5.2beta01) behavior.
+ Corrected png_get_current_row_number documentation
+ Fixed the read/write row callback documentation.
+ This documents the current behavior, where the callback is called after
+ every row with information pertaining to the next row.
+
+Version 1.5.2beta03 [March 3, 2011]
+ Fixed scripts/makefile.vcwin32
+ Updated contrib/pngsuite/README to add the word "modify".
+ Define PNG_ALLOCATED to blank when _MSC_VER<1300.
+
+Version 1.5.2rc01 [March 19, 2011]
+ Define remaining attributes to blank when MSC_VER<1300.
+ ifdef out mask arrays in pngread.c when interlacing is not supported.
+
+Version 1.5.2rc02 [March 22, 2011]
+ Added a hint to try CPP=/bin/cpp if "cpp -E" fails in scripts/pnglibconf.mak
+ and in contrib/pngminim/*/makefile, eg., on SunOS 5.10, and removed "strip"
+ from the makefiles.
+ Fixed a bug (present since libpng-1.0.7) that makes png_handle_sPLT() fail
+ to compile when PNG_NO_POINTER_INDEXING is defined (Chubanov Kirill)
+
+Version 1.5.2rc03 [March 24, 2011]
+ Don't include standard header files in png.h while building the symbol table,
+ to avoid cpp failure on SunOS (introduced PNG_BUILDING_SYMBOL_TABLE macro).
+
+Version 1.5.2 [March 31, 2011]
+ No changes.
+
+Version 1.5.3beta01 [April 1, 2011]
+ Re-initialize the zlib compressor before compressing non-IDAT chunks.
+ Added API functions to set parameters for zlib compression of non-IDAT
+ chunks.
+
+Version 1.5.3beta02 [April 3, 2011]
+ Updated scripts/symbols.def with new API functions.
+ Only compile the new zlib re-initializing code when text or iCCP is
+ supported, using PNG_WRITE_COMPRESSED_TEXT_SUPPORTED macro.
+ Improved the optimization of the zlib CMF byte (see libpng-1.2.6beta03).
+ Optimize the zlib CMF byte in non-IDAT compressed chunks
+
+Version 1.5.3beta03 [April 16, 2011]
+ Fixed gcc -ansi -pedantic compile. A strict ANSI system does not have
+ snprintf, and the "__STRICT_ANSI__" detects that condition more reliably
+ than __STDC__ (John Bowler).
+ Removed the PNG_PTR_NORETURN attribute because it too dangerous. It tells
+ the compiler that a user supplied callback (the error handler) does not
+ return, yet there is no guarantee in practice that the application code
+ will correctly implement the error handler because the compiler only
+ issues a warning if there is a mistake (John Bowler).
+ Removed the no-longer-used PNG_DEPSTRUCT macro.
+ Updated the zlib version to 1.2.5 in the VStudio project.
+ Fixed 64-bit builds where png_uint_32 is smaller than png_size_t in
+ pngwutil.c (John Bowler).
+ Fixed bug with stripping the filler or alpha channel when writing, that
+ was introduced in libpng-1.5.2beta01 (bug report by Andrew Church).
+
+Version 1.5.3beta04 [April 27, 2011]
+ Updated pngtest.png with the new zlib CMF optimization.
+ Cleaned up conditional compilation code and of background/gamma handling
+ Internal changes only except a new option to avoid compiling the
+ png_build_grayscale_palette API (which is not used at all internally.)
+ The main change is to move the transform tests (READ_TRANSFORMS,
+ WRITE_TRANSFORMS) up one level to the caller of the APIs. This avoids
+ calls to spurious functions if all transforms are disabled and slightly
+ simplifies those functions. Pngvalid modified to handle this.
+ A minor change is to stop the strip_16 and expand_16 interfaces from
+ disabling each other; this allows the future alpha premultiplication
+ code to use 16-bit intermediate values while still producing 8-bit output.
+ png_do_background and png_do_gamma have been simplified to take a single
+ pointer to the png_struct rather than pointers to every item required
+ from the png_struct. This makes no practical difference to the internal
+ code.
+ A serious bug in the pngvalid internal routine 'standard_display_init' has
+ been fixed - this failed to initialize the red channel and accidentally
+ initialized the alpha channel twice.
+ Changed png_struct jmp_buf member name from png_jmpbuf to tmp_jmpbuf to
+ avoid a possible clash with the png_jmpbuf macro on some platforms.
+
+Version 1.5.3beta05 [May 6, 2011]
+ Added the "_POSIX_SOURCE" feature test macro to ensure libpng sees the
+ correct API. _POSIX_SOURCE is defined in pngpriv.h, pngtest.c and
+ pngvalid.c to ensure that POSIX conformant systems disable non-POSIX APIs.
+ Removed png_snprintf and added formatted warning messages. This change adds
+ internal APIs to allow png_warning messages to have parameters without
+ requiring the host OS to implement snprintf. As a side effect the
+ dependency of the tIME-supporting RFC1132 code on stdio is removed and
+ PNG_NO_WARNINGS does actually work now.
+ Pass "" instead of '\0' to png_default_error() in png_err(). This mistake
+ was introduced in libpng-1.2.20beta01.
+ Added PNG_WRITE_OPTIMIZE_CMF_SUPPORTED macro to make the zlib "CMF" byte
+ optimization configureable.
+ IDAT compression failed if preceded by a compressed text chunk (bug
+ introduced in libpng-1.5.3beta01-02). This was because the attempt to
+ reset the zlib stream in png_write_IDAT happened after the first IDAT
+ chunk had been deflated - much too late. In this change internal
+ functions were added to claim/release the z_stream and, hopefully, make
+ the code more robust. Also deflateEnd checking is added - previously
+ libpng would ignore an error at the end of the stream.
+
+Version 1.5.3beta06 [May 8, 2011]
+ Removed the -D_ALL_SOURCE from definitions for AIX in CMakeLists.txt
+ Implemented premultiplied alpha support: png_set_alpha_mode API
+
+Version 1.5.3beta07 [May 11, 2011]
+ Added expand_16 support to the high level interface.
+ Added named value and 'flag' gamma support to png_set_gamma. Made a minor
+ change from the previous (unreleased) ABI/API to hide the exact value used
+ for Macs - it's not a good idea to embed this in the ABI!
+ Moved macro definitions for PNG_HAVE_IHDR, PNG_HAVE_PLTE, and PNG_AFTER_IDAT
+ from pngpriv.h to png.h because they must be visible to applications
+ that call png_set_unknown_chunks().
+ Check for up->location !PNG_AFTER_IDAT when writing unknown chunks
+ before IDAT.
+
+Version 1.5.3beta08 [May 16, 2011]
+ Improved "pngvalid --speed" to exclude more of pngvalid from the time.
+ Documented png_set_alpha_mode(), other changes in libpng.3/libpng-manual.txt
+ The cHRM chunk now sets the defaults for png_set_rgb_to_gray() (when negative
+ parameters are supplied by the caller), while in the absence of cHRM
+ sRGB/Rec 709 values are still used.
+ The bKGD chunk no longer overwrites the background value set by
+ png_set_background(), allowing the latter to be used before the file
+ header is read. It never performed any useful function to override
+ the default anyway.
+ Added memory overwrite and palette image checks to pngvalid.c
+ Previously palette image code was poorly checked. Since the transformation
+ code has a special palette path in most cases this was a severe weakness.
+ Minor cleanup and some extra checking in pngrutil.c and pngrtran.c. When
+ expanding an indexed image, always expand to RGBA if transparency is
+ present.
+
+Version 1.5.3beta09 [May 17, 2011]
+ Reversed earlier 1.5.3 change of transformation order; move png_expand_16
+ back where it was. The change doesn't work because it requires 16-bit
+ gamma tables when the code only generates 8-bit ones. This fails
+ silently; the libpng code just doesn't do any gamma correction. Moving
+ the tests back leaves the old, inaccurate, 8-bit gamma calculations, but
+ these are clearly better than none!
+
+Version 1.5.3beta10 [May 20, 2011]
+
+ png_set_background() and png_expand_16() did not work together correctly.
+ This problem is present in 1.5.2; if png_set_background is called with
+ need_expand false and the matching 16 bit color libpng erroneously just
+ treats it as an 8-bit color because of where png_do_expand_16 is in the
+ transform list. This simple fix reduces the supplied colour to 8-bits,
+ so it gets smashed, but this is better than the current behavior.
+ Added tests for expand16, more fixes for palette image tests to pngvalid.
+ Corrects the code for palette image tests and disables attempts to
+ validate palette colors.
+
+Version 1.5.3rc01 [June 3, 2011]
+ No changes.
+
+Version 1.5.3rc02 [June 8, 2011]
+ Fixed uninitialized memory read in png_format_buffer() (Bug report by
+ Frank Busse, CVE-2011-2501, related to CVE-2004-0421).
+
+Version 1.5.3beta11 [June 11, 2011]
+ Fixed png_handle_sCAL which is broken in 1.5; added sCAL to pngtest.png
+ Revised documentation about png_set_user_limits() to say that it also affects
+ png writing.
+ Revised handling of png_set_user_limits() so that it can increase the
+ limit beyond the PNG_USER_WIDTH|HEIGHT_MAX; previously it could only
+ reduce it.
+ Make the 16-to-8 scaling accurate. Dividing by 256 with no rounding is
+ wrong (high by one) 25% of the time. Dividing by 257 with rounding is
+ wrong in 128 out of 65536 cases. Getting the right answer all the time
+ without division is easy.
+ Added "_SUPPORTED" to the PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION macro.
+ Added projects/owatcom, an IDE project for OpenWatcom to replace
+ scripts/makefile.watcom. This project works with OpenWatcom 1.9. The
+ IDE autogenerates appropriate makefiles (libpng.mk) for batch processing.
+ The project is configurable, unlike the Visual Studio project, so long
+ as the developer has an awk.
+ Changed png_set_gAMA to limit the gamma value range so that the inverse
+ of the stored value cannot overflow the fixed point representation,
+ and changed other things OpenWatcom warns about.
+ Revised pngvalid.c to test PNG_ALPHA_MODE_SUPPORTED correctly. This allows
+ pngvalid to build when ALPHA_MODE is not supported, which is required if
+ it is to build on libpng 1.4.
+ Removed string/memory macros that are no longer used and are not
+ necessarily fully supportable, particularly png_strncpy and png_snprintf.
+ Added log option to pngvalid.c and attempted to improve gamma messages.
+
+Version 1.5.3 [omitted]
+ People found the presence of a beta release following an rc release
+ to be confusing; therefore we bump the version to libpng-1.5.4beta01
+ and there will be no libpng-1.5.3 release.
+
+Version 1.5.4beta01 [June 14, 2011]
+ Made it possible to undefine PNG_READ_16_TO_8_ACCURATE_SCALE_SUPPORTED
+ to get the same (inaccurate) output as libpng-1.5.2 and earlier.
+ Moved definitions of PNG_HAVE_IHDR, PNG_AFTER_IDAT, and PNG_HAVE_PLTE
+ outside of an unknown-chunk block in png.h because they are also
+ needed for other uses.
+
+Version 1.5.4beta02 [June 14, 2011]
+ Fixed and clarified LEGACY 16-to-8 scaling code.
+ Added png_set_chop_16() API, to match inaccurate results from previous
+ libpng versions.
+ Removed the ACCURATE and LEGACY options (they are no longer useable)
+ Use the old scaling method for background if png_set_chop_16() was
+ called.
+ Made png_set_chop_16() API removeable by disabling PNG_CHOP_16_TO_8_SUPPORTED
+
+Version 1.5.4beta03 [June 15, 2011]
+ Fixed a problem in png_do_expand_palette() exposed by optimization in
+ 1.5.3beta06
+ Also removed a spurious and confusing "trans" member ("trans") from png_info.
+ The palette expand optimization prevented expansion to an intermediate RGBA
+ form if tRNS was present but alpha was marked to be stripped; this exposed
+ a check for tRNS in png_do_expand_palette() which is inconsistent with the
+ code elsewhere in libpng.
+ Correction to the expand_16 code; removed extra instance of
+ png_set_scale_16_to_8 from pngpriv.h
+
+Version 1.5.4beta04 [June 16, 2011]
+ Added a missing "#ifdef PNG_READ_BACKGROUND_SUPPORTED/#endif" in pngrtran.c
+ Added PNG_TRANSFORM_CHOP_16 to the high-level read transforms.
+ Made PNG_READ_16_TO_8_ACCURATE_SCALE configurable again. If this is
+ not enabled, png_set_strip_16() and png_do_scale_16_to_8() aren't built.
+ Revised contrib/visupng, gregbook, and pngminim to demonstrate chop_16_to_8
+
+Version 1.5.4beta05 [June 16, 2011]
+ Renamed png_set_strip_16() to png_set_scale_16() and renamed
+ png_set_chop_16() to png_set_strip(16) in an attempt to minimize the
+ behavior changes between libpng14 and libpng15.
+
+Version 1.5.4beta06 [June 18, 2011]
+ Fixed new bug that was causing both strip_16 and scale_16 to be applied.
+
+Version 1.5.4beta07 [June 19, 2011]
+ Fixed pngvalid, simplified macros, added checking for 0 in sCAL.
+ The ACCURATE scale macro is no longer defined in 1.5 - call the
+ png_scale_16_to_8 API. Made sure that PNG_READ_16_TO_8 is still defined
+ if the png_strip_16_to_8 API is present. png_check_fp_number now
+ maintains some state so that positive, negative and zero values are
+ identified. sCAL uses these to be strictly spec conformant.
+
+Version 1.5.4beta08 [June 23, 2011]
+ Fixed pngvalid if ACCURATE_SCALE is defined.
+ Updated scripts/pnglibconf.h.prebuilt.
+
+Version 1.5.4rc01 [June 30, 2011]
+ Define PNG_ALLOCATED to "restrict" only if MSC_VER >= 1400.
+
+Version 1.5.4 [July 7, 2011]
+
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
(subscription required; visit
https://lists.sourceforge.net/lists/listinfo/png-mng-implement