jdk/src/java.desktop/share/native/libsplashscreen/libpng/CHANGES
changeset 35296 659e92aaf7f4
parent 29913 95258013e132
child 40436 94ae0ede53a5
equal deleted inserted replaced
35295:80c40839a17e 35296:659e92aaf7f4
    21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    22  * or visit www.oracle.com if you need additional information or have any
    22  * or visit www.oracle.com if you need additional information or have any
    23  * questions.
    23  * questions.
    24  */
    24  */
    25 
    25 
       
    26 #if 0
    26 CHANGES - changes for libpng
    27 CHANGES - changes for libpng
    27 
    28 
    28 Version 0.2
    29 version 0.1 [March 29, 1995]
       
    30   initial work-in-progress release
       
    31 
       
    32 version 0.2 [April 1, 1995]
    29   added reader into png.h
    33   added reader into png.h
    30   fixed small problems in stub file
    34   fixed small problems in stub file
    31 
    35 
    32 Version 0.3
    36 version 0.3 [April 8, 1995]
    33   added pull reader
    37   added pull reader
    34   split up pngwrite.c to several files
    38   split up pngwrite.c to several files
    35   added pnglib.txt
    39   added pnglib.txt
    36   added example.c
    40   added example.c
    37   cleaned up writer, adding a few new transformations
    41   cleaned up writer, adding a few new transformations
    38   fixed some bugs in writer
    42   fixed some bugs in writer
    39   interfaced with zlib 0.5
    43   interfaced with zlib 0.5
    40   added K&R support
    44   added K&R support
    41   added check for 64 KB blocks for 16-bit machines
    45   added check for 64 KB blocks for 16 bit machines
    42 
    46 
    43 Version 0.4
    47 version 0.4 [April 26, 1995]
    44   cleaned up code and commented code
    48   cleaned up code and commented code
    45   simplified time handling into png_time
    49   simplified time handling into png_time
    46   created png_color_16 and png_color_8 to handle color needs
    50   created png_color_16 and png_color_8 to handle color needs
    47   cleaned up color type defines
    51   cleaned up color type defines
    48   fixed various bugs
    52   fixed various bugs
    49   made various names more consistent
    53   made various names more consistent
    50   interfaced with zlib 0.71
    54   interfaced with zlib 0.71
    51   cleaned up zTXt reader and writer (using zlib's Reset functions)
    55   cleaned up zTXt reader and writer (using zlib's Reset functions)
    52   split transformations into pngrtran.c and pngwtran.c
    56   split transformations into pngrtran.c and pngwtran.c
    53 
    57 
    54 Version 0.5
    58 version 0.5 [April 30, 1995]
    55   interfaced with zlib 0.8
    59   interfaced with zlib 0.8
    56   fixed many reading and writing bugs
    60   fixed many reading and writing bugs
    57   saved using 3 spaces instead of tabs
    61   saved using 3 spaces instead of tabs
    58 
    62 
    59 Version 0.6
    63 version 0.6 [May 1, 1995]
       
    64   first beta release
    60   added png_large_malloc() and png_large_free()
    65   added png_large_malloc() and png_large_free()
    61   added png_size_t
    66   added png_size_t
    62   cleaned up some compiler warnings
    67   cleaned up some compiler warnings
    63   added png_start_read_image()
    68   added png_start_read_image()
    64 
    69 
    65 Version 0.7
    70 version 0.7 [June 24, 1995]
    66   cleaned up lots of bugs
    71   cleaned up lots of bugs
    67   finished dithering and other stuff
    72   finished dithering and other stuff
    68   added test program
    73   added test program
    69   changed name from pnglib to libpng
    74   changed name from pnglib to libpng
    70 
    75 
    71 Version 0.71 [June, 1995]
    76 version 0.71 [June 26, 1995]
    72   changed pngtest.png for zlib 0.93
    77   changed pngtest.png for zlib 0.93
    73   fixed error in libpng.txt and example.c
    78   fixed error in libpng.txt and example.c
    74 
    79 
    75 Version 0.8
    80 version 0.8 [August 20, 1995]
    76   cleaned up some bugs
    81   cleaned up some bugs
    77   added png_set_filler()
    82   added png_set_filler()
    78   split up pngstub.c into pngmem.c, pngio.c, and pngerror.c
    83   split up pngstub.c into pngmem.c, pngio.c, and pngerror.c
    79   added #define's to remove unwanted code
    84   added #define's to remove unwanted code
    80   moved png_info_init() to png.c
    85   moved png_info_init() to png.c
   113   fixed progressive bugs
   118   fixed progressive bugs
   114   replaced tabs with spaces
   119   replaced tabs with spaces
   115   cleaned up documentation
   120   cleaned up documentation
   116   added callbacks for read/write and warning/error functions
   121   added callbacks for read/write and warning/error functions
   117 
   122 
   118 Version 0.89 [July, 1996]
   123 Version 0.89 [June 5, 1996]
   119   Added new initialization API to make libpng work better with shared libs
   124   Added new initialization API to make libpng work better with shared libs
   120     we now have png_create_read_struct(), png_create_write_struct(),
   125     we now have png_create_read_struct(), png_create_write_struct(),
   121     png_create_info_struct(), png_destroy_read_struct(), and
   126     png_create_info_struct(), png_destroy_read_struct(), and
   122     png_destroy_write_struct() instead of the separate calls to
   127     png_destroy_write_struct() instead of the separate calls to
   123     malloc and png_read_init(), png_info_init(), and png_write_init()
   128     malloc and png_read_init(), png_info_init(), and png_write_init()
   140   Separated read and write functions so that they won't both be linked
   145   Separated read and write functions so that they won't both be linked
   141     into a binary when only reading or writing functionality is used
   146     into a binary when only reading or writing functionality is used
   142   New pngtest image also has interlacing and zTXt
   147   New pngtest image also has interlacing and zTXt
   143   Updated documentation to reflect new API
   148   Updated documentation to reflect new API
   144 
   149 
       
   150 Version 0.89c [June 17, 1996]
       
   151   Bug fixes.
       
   152 
   145 Version 0.90 [January, 1997]
   153 Version 0.90 [January, 1997]
   146   Made CRC errors/warnings on critical and ancillary chunks configurable
   154   Made CRC errors/warnings on critical and ancillary chunks configurable
   147   libpng will use the zlib CRC routines by (compile-time) default
   155   libpng will use the zlib CRC routines by (compile-time) default
   148   Changed DOS small/medium model memory support - needs zlib 1.04 (Tim Wegner)
   156   Changed DOS small/medium model memory support - needs zlib 1.04 (Tim Wegner)
   149   Added external C++ wrapper statements to png.h (Gilles Dauphin)
   157   Added external C++ wrapper statements to png.h (Gilles Dauphin)
   180   Removed all implicit variable tests which assume NULL == 0 (I think)
   188   Removed all implicit variable tests which assume NULL == 0 (I think)
   181   Changed several variables to "png_size_t" to show 16/32-bit limitations
   189   Changed several variables to "png_size_t" to show 16/32-bit limitations
   182   Added new pCAL chunk read/write support
   190   Added new pCAL chunk read/write support
   183   Added experimental filter selection weighting (Greg Roelofs)
   191   Added experimental filter selection weighting (Greg Roelofs)
   184   Removed old png_set_rgbx() and png_set_xrgb() functions that have been
   192   Removed old png_set_rgbx() and png_set_xrgb() functions that have been
   185      obsolete for about 2 years now (use png_set_filler() instead)
   193     obsolete for about 2 years now (use png_set_filler() instead)
   186   Added macros to read 16- and 32-bit ints directly from buffer, to be
   194   Added macros to read 16- and 32-bit ints directly from buffer, to be
   187     used only on those systems that support it (namely PowerPC and 680x0)
   195     used only on those systems that support it (namely PowerPC and 680x0)
   188     With some testing, this may become the default for MACOS/PPC systems.
   196     With some testing, this may become the default for MACOS/PPC systems.
   189   Only calculate CRC on data if we are going to use it
   197   Only calculate CRC on data if we are going to use it
   190   Added macros for zTXt compression type PNG_zTXt_COMPRESSION_???
   198   Added macros for zTXt compression type PNG_zTXt_COMPRESSION_???
   462   Added makefile.hux, for Hewlett Packard HPUX 10.20 and 11.00 (Jim Rice)
   470   Added makefile.hux, for Hewlett Packard HPUX 10.20 and 11.00 (Jim Rice)
   463   Added a statement of Y2K compliance in png.h, libpng.3, and Y2KINFO.
   471   Added a statement of Y2K compliance in png.h, libpng.3, and Y2KINFO.
   464 
   472 
   465 Version 1.0.3a [August 12, 1999]
   473 Version 1.0.3a [August 12, 1999]
   466   Added check for PNG_READ_INTERLACE_SUPPORTED in pngread.c; issue a warning
   474   Added check for PNG_READ_INTERLACE_SUPPORTED in pngread.c; issue a warning
   467      if an attempt is made to read an interlaced image when it's not supported.
   475     if an attempt is made to read an interlaced image when it's not supported.
   468   Added check if png_ptr->trans is defined before freeing it in pngread.c
   476   Added check if png_ptr->trans is defined before freeing it in pngread.c
   469   Modified the Y2K statement to include versions back to version 0.71
   477   Modified the Y2K statement to include versions back to version 0.71
   470   Fixed a bug in the check for valid IHDR bit_depth/color_types in pngrutil.c
   478   Fixed a bug in the check for valid IHDR bit_depth/color_types in pngrutil.c
   471   Modified makefile.wat (added -zp8 flag, ".symbolic", changed some comments)
   479   Modified makefile.wat (added -zp8 flag, ".symbolic", changed some comments)
   472   Replaced leading blanks with tab characters in makefile.hux
   480   Replaced leading blanks with tab characters in makefile.hux
   473   Changed "dworkin.wustl.edu" to "ccrc.wustl.edu" in various documents.
   481   Changed "dworkin.wustl.edu" to "ccrc.wustl.edu" in various documents.
   474   Changed (float)red and (float)green to (double)red, (double)green
   482   Changed (float)red and (float)green to (double)red, (double)green
   475      in png_set_rgb_to_gray() to avoid "promotion" problems in AIX.
   483     in png_set_rgb_to_gray() to avoid "promotion" problems in AIX.
   476   Fixed a bug in pngconf.h that omitted <stdio.h> when PNG_DEBUG==0 (K Bracey).
   484   Fixed a bug in pngconf.h that omitted <stdio.h> when PNG_DEBUG==0 (K Bracey).
   477   Reformatted libpng.3 and libpngpf.3 with proper fonts (script by J. vanZandt).
   485   Reformatted libpng.3 and libpngpf.3 with proper fonts (script by J. vanZandt).
   478   Updated documentation to refer to the PNG-1.2 specification.
   486   Updated documentation to refer to the PNG-1.2 specification.
   479   Removed ansi2knr.c and left pointers to the latest source for ansi2knr.c
   487   Removed ansi2knr.c and left pointers to the latest source for ansi2knr.c
   480     in makefile.knr, INSTALL, and README (L. Peter Deutsch)
   488     in makefile.knr, INSTALL, and README (L. Peter Deutsch)
   513 Version 1.0.3d [September 4, 1999]
   521 Version 1.0.3d [September 4, 1999]
   514   Fixed type casting of igamma in pngrutil.c
   522   Fixed type casting of igamma in pngrutil.c
   515   Added new png_expand functions to scripts/pngdef.pas and pngos2.def
   523   Added new png_expand functions to scripts/pngdef.pas and pngos2.def
   516   Added a demo read_user_transform_fn that examines the row filters in pngtest.c
   524   Added a demo read_user_transform_fn that examines the row filters in pngtest.c
   517 
   525 
   518 Version 1.0.4 [September 24, 1999]
   526 Version 1.0.4 [September 24, 1999, not distributed publicly]
   519   Define PNG_ALWAYS_EXTERN in pngconf.h if __STDC__ is defined
   527   Define PNG_ALWAYS_EXTERN in pngconf.h if __STDC__ is defined
   520   Delete #define PNG_INTERNAL and include "png.h" from pngasmrd.h
   528   Delete #define PNG_INTERNAL and include "png.h" from pngasmrd.h
   521   Made several minor corrections to pngtest.c
   529   Made several minor corrections to pngtest.c
   522   Renamed the makefiles with longer but more user friendly extensions.
   530   Renamed the makefiles with longer but more user friendly extensions.
   523   Copied the PNG copyright and license to a separate LICENSE file.
   531   Copied the PNG copyright and license to a separate LICENSE file.
   540 
   548 
   541 Version 1.0.4c [October 1, 1999]
   549 Version 1.0.4c [October 1, 1999]
   542   Added a "png_check_version" function in png.c and pngtest.c that will generate
   550   Added a "png_check_version" function in png.c and pngtest.c that will generate
   543     a helpful compiler error if an old png.h is found in the search path.
   551     a helpful compiler error if an old png.h is found in the search path.
   544   Changed type of png_user_transform_depth|channels from int to png_byte.
   552   Changed type of png_user_transform_depth|channels from int to png_byte.
       
   553   Added "Libpng is OSI Certified Open Source Software" statement to png.h
   545 
   554 
   546 Version 1.0.4d [October 6, 1999]
   555 Version 1.0.4d [October 6, 1999]
   547   Changed 0.45 to 0.45455 in png_set_sRGB()
   556   Changed 0.45 to 0.45455 in png_set_sRGB()
   548   Removed unused PLTE entries from pngnow.png
   557   Removed unused PLTE entries from pngnow.png
   549   Re-enabled some parts of pngvcrd.c (png_combine_row) that work properly.
   558   Re-enabled some parts of pngvcrd.c (png_combine_row) that work properly.
   926   Revised the definition of "trans_values" in libpng.3/libpng.txt
   935   Revised the definition of "trans_values" in libpng.3/libpng.txt
   927 
   936 
   928 Version 1.0.8beta1 [July 8, 2000]
   937 Version 1.0.8beta1 [July 8, 2000]
   929   Added png_free(png_ptr, key) two places in pngpread.c to stop memory leaks.
   938   Added png_free(png_ptr, key) two places in pngpread.c to stop memory leaks.
   930   Changed PNG_NO_STDIO to PNG_NO_CONSOLE_IO, several places in pngrutil.c and
   939   Changed PNG_NO_STDIO to PNG_NO_CONSOLE_IO, several places in pngrutil.c and
   931      pngwutil.c.
   940     pngwutil.c.
   932   Changed PNG_EXPORT_VAR to use PNG_IMPEXP, in pngconf.h.
   941   Changed PNG_EXPORT_VAR to use PNG_IMPEXP, in pngconf.h.
   933   Removed unused "#include <assert.h>" from png.c
   942   Removed unused "#include <assert.h>" from png.c
   934   Added WindowsCE support.
   943   Added WindowsCE support.
   935   Revised pnggccrd.c to work with gcc-2.95.2 and in the Cygwin environment.
   944   Revised pnggccrd.c to work with gcc-2.95.2 and in the Cygwin environment.
   936 
   945 
   937 Version 1.0.8beta2 [July 10, 2000]
   946 Version 1.0.8beta2 [July 10, 2000]
   938   Added project files to the wince directory and made further revisions
   947   Added project files to the wince directory and made further revisions
   939      of pngtest.c, pngrio.c, and pngwio.c in support of WindowsCE.
   948     of pngtest.c, pngrio.c, and pngwio.c in support of WindowsCE.
   940 
   949 
   941 Version 1.0.8beta3 [July 11, 2000]
   950 Version 1.0.8beta3 [July 11, 2000]
   942   Only set the PNG_FLAG_FREE_TRNS or PNG_FREE_TRNS flag in png_handle_tRNS()
   951   Only set the PNG_FLAG_FREE_TRNS or PNG_FREE_TRNS flag in png_handle_tRNS()
   943      for indexed-color input files to avoid potential double-freeing trans array
   952     for indexed-color input files to avoid potential double-freeing trans array
   944      under some unusual conditions; problem was introduced in version 1.0.6f.
   953     under some unusual conditions; problem was introduced in version 1.0.6f.
   945   Further revisions to pngtest.c and files in the wince subdirectory.
   954   Further revisions to pngtest.c and files in the wince subdirectory.
   946 
   955 
   947 Version 1.0.8beta4 [July 14, 2000]
   956 Version 1.0.8beta4 [July 14, 2000]
   948   Added the files pngbar.png and pngbar.jpg to the distribution.
   957   Added the files pngbar.png and pngbar.jpg to the distribution.
   949   Added makefile.cygwin, and cygwin support in pngconf.h
   958   Added makefile.cygwin, and cygwin support in pngconf.h
  1111   Increased png_mng_features flag from png_byte to png_uint_32.
  1120   Increased png_mng_features flag from png_byte to png_uint_32.
  1112   Bumped shared-library (so-number) and dll-number to 3.
  1121   Bumped shared-library (so-number) and dll-number to 3.
  1113 
  1122 
  1114 Version 1.2.0beta4 [June 23, 2001]
  1123 Version 1.2.0beta4 [June 23, 2001]
  1115   Check for missing profile length field in iCCP chunk and free chunk_data
  1124   Check for missing profile length field in iCCP chunk and free chunk_data
  1116      in case of truncated iCCP chunk.
  1125     in case of truncated iCCP chunk.
  1117   Bumped shared-library number to 3 in makefile.sgi and makefile.sggcc
  1126   Bumped shared-library number to 3 in makefile.sgi and makefile.sggcc
  1118   Bumped dll-number from 2 to 3 in makefile.cygwin
  1127   Bumped dll-number from 2 to 3 in makefile.cygwin
  1119   Revised contrib/gregbook/rpng*-x.c to avoid a memory leak and to exit cleanly
  1128   Revised contrib/gregbook/rpng*-x.c to avoid a memory leak and to exit cleanly
  1120      if user attempts to run it on an 8-bit display.
  1129     if user attempts to run it on an 8-bit display.
  1121   Updated contrib/gregbook
  1130   Updated contrib/gregbook
  1122   Use png_malloc instead of png_zalloc to allocate palette in pngset.c
  1131   Use png_malloc instead of png_zalloc to allocate palette in pngset.c
  1123   Updated makefile.ibmc
  1132   Updated makefile.ibmc
  1124   Added some typecasts to eliminate gcc 3.0 warnings.  Changed prototypes
  1133   Added some typecasts to eliminate gcc 3.0 warnings.  Changed prototypes
  1125      of png_write_oFFS width and height from png_uint_32 to png_int_32.
  1134     of png_write_oFFS width and height from png_uint_32 to png_int_32.
  1126   Updated example.c
  1135   Updated example.c
  1127   Revised prototypes for png_debug_malloc and png_debug_free in pngtest.c
  1136   Revised prototypes for png_debug_malloc and png_debug_free in pngtest.c
  1128 
  1137 
  1129 Version 1.2.0beta5 [August 8, 2001]
  1138 Version 1.2.0beta5 [August 8, 2001]
  1130   Revised contrib/gregbook
  1139   Revised contrib/gregbook
  1131   Revised makefile.gcmmx
  1140   Revised makefile.gcmmx
  1132   Revised pnggccrd.c to conditionally compile some thread-unsafe code only
  1141   Revised pnggccrd.c to conditionally compile some thread-unsafe code only
  1133      when PNG_THREAD_UNSAFE_OK is defined.
  1142     when PNG_THREAD_UNSAFE_OK is defined.
  1134   Added tests to prevent pngwutil.c from writing a bKGD or tRNS chunk with
  1143   Added tests to prevent pngwutil.c from writing a bKGD or tRNS chunk with
  1135      value exceeding 2^bit_depth-1
  1144     value exceeding 2^bit_depth-1
  1136   Revised makefile.sgi and makefile.sggcc
  1145   Revised makefile.sgi and makefile.sggcc
  1137   Replaced calls to fprintf(stderr,...) with png_warning() in pnggccrd.c
  1146   Replaced calls to fprintf(stderr,...) with png_warning() in pnggccrd.c
  1138   Removed restriction that do_invert_mono only operate on 1-bit opaque files
  1147   Removed restriction that do_invert_mono only operate on 1-bit opaque files
  1139 
  1148 
  1140 Version 1.2.0 [September 1, 2001]
  1149 Version 1.2.0 [September 1, 2001]
  1471   Added some "#if PNG_WRITE_SUPPORTED" blocks.
  1480   Added some "#if PNG_WRITE_SUPPORTED" blocks.
  1472   Added #ifdef to remove some redundancy in png_malloc_default().
  1481   Added #ifdef to remove some redundancy in png_malloc_default().
  1473   Use png_malloc instead of png_zalloc to allocate the pallete.
  1482   Use png_malloc instead of png_zalloc to allocate the pallete.
  1474 
  1483 
  1475 Version 1.0.16rc1 and 1.2.6rc1 [August 4, 2004]
  1484 Version 1.0.16rc1 and 1.2.6rc1 [August 4, 2004]
  1476   Fixed buffer overflow vulnerability in png_handle_tRNS()
  1485   Fixed buffer overflow vulnerability (CVE-2004-0597) in png_handle_tRNS().
  1477   Fixed integer arithmetic overflow vulnerability in png_read_png().
  1486   Fixed NULL dereference vulnerability (CVE-2004-0598) in png_handle_iCCP().
       
  1487   Fixed integer overflow vulnerability (CVE-2004-0599) in png_read_png().
  1478   Fixed some harmless bugs in png_handle_sBIT, etc, that would cause
  1488   Fixed some harmless bugs in png_handle_sBIT, etc, that would cause
  1479     duplicate chunk types to go undetected.
  1489     duplicate chunk types to go undetected.
  1480   Fixed some timestamps in the -config version
  1490   Fixed some timestamps in the -config version
  1481   Rearranged order of processing of color types in png_handle_tRNS().
  1491   Rearranged order of processing of color types in png_handle_tRNS().
  1482   Added ROWBYTES macro to calculate rowbytes without integer overflow.
  1492   Added ROWBYTES macro to calculate rowbytes without integer overflow.
  1515   Fixed mistake in pngtest.c introduced in 1.2.6rc2 (declaration of
  1525   Fixed mistake in pngtest.c introduced in 1.2.6rc2 (declaration of
  1516     "pinfo" was out of place).
  1526     "pinfo" was out of place).
  1517 
  1527 
  1518 Version 1.0.16rc5 and 1.2.6rc5 [August 10, 2004]
  1528 Version 1.0.16rc5 and 1.2.6rc5 [August 10, 2004]
  1519   Moved  "PNG_HANDLE_CHUNK_*" macros out of PNG_ASSEMBLER_CODE_SUPPORTED
  1529   Moved  "PNG_HANDLE_CHUNK_*" macros out of PNG_ASSEMBLER_CODE_SUPPORTED
  1520      section of png.h where they were inadvertently placed in version rc3.
  1530     section of png.h where they were inadvertently placed in version rc3.
  1521 
  1531 
  1522 Version 1.2.6 and 1.0.16 [August 15, 2004]
  1532 Version 1.2.6 and 1.0.16 [August 15, 2004]
  1523   Revised pngtest so memory allocation testing is only done when PNG_DEBUG==1.
  1533   Revised pngtest so memory allocation testing is only done when PNG_DEBUG==1.
  1524 
  1534 
  1525 Version 1.2.7beta1 [August 26, 2004]
  1535 Version 1.2.7beta1 [August 26, 2004]
  2124 Version 1.4.0beta24 [July 25, 2008]
  2134 Version 1.4.0beta24 [July 25, 2008]
  2125   Change all remaining "chunkdata" to "png_ptr->chunkdata" in
  2135   Change all remaining "chunkdata" to "png_ptr->chunkdata" in
  2126     png_decompress_chunk(), and remove "chunkdata" from parameter list.
  2136     png_decompress_chunk(), and remove "chunkdata" from parameter list.
  2127   Put a call to png_check_chunk_name() in png_read_chunk_header().
  2137   Put a call to png_check_chunk_name() in png_read_chunk_header().
  2128   Revised png_check_chunk_name() to reject a name with a lowercase 3rd byte.
  2138   Revised png_check_chunk_name() to reject a name with a lowercase 3rd byte.
  2129   Removed two calls to png_check_chunk_name() occuring later in the process.
  2139   Removed two calls to png_check_chunk_name() occurring later in the process.
  2130   Define PNG_NO_ERROR_NUMBERS by default in pngconf.h
  2140   Define PNG_NO_ERROR_NUMBERS by default in pngconf.h
  2131 
  2141 
  2132 Version 1.4.0beta25 [July 30, 2008]
  2142 Version 1.4.0beta25 [July 30, 2008]
  2133   Added a call to png_check_chunk_name() in pngpread.c
  2143   Added a call to png_check_chunk_name() in pngpread.c
  2134   Reverted png_check_chunk_name() to accept a name with a lowercase 3rd byte.
  2144   Reverted png_check_chunk_name() to accept a name with a lowercase 3rd byte.
  2347     "#if defined()" and "if !defined()" where possible.
  2357     "#if defined()" and "if !defined()" where possible.
  2348 
  2358 
  2349 Version 1.4.0beta64 [June 24, 2009]
  2359 Version 1.4.0beta64 [June 24, 2009]
  2350   Eliminated PNG_LEGACY_SUPPORTED code.
  2360   Eliminated PNG_LEGACY_SUPPORTED code.
  2351   Moved the various unknown chunk macro definitions outside of the
  2361   Moved the various unknown chunk macro definitions outside of the
  2352      PNG_READ|WRITE_ANCILLARY_CHUNK_SUPPORTED blocks.
  2362     PNG_READ|WRITE_ANCILLARY_CHUNK_SUPPORTED blocks.
  2353 
  2363 
  2354 Version 1.4.0beta65 [June 26, 2009]
  2364 Version 1.4.0beta65 [June 26, 2009]
  2355   Added a reference to the libpng license in each file.
  2365   Added a reference to the libpng license in each file.
  2356 
  2366 
  2357 Version 1.4.0beta66 [June 27, 2009]
  2367 Version 1.4.0beta66 [June 27, 2009]
  3769     Also removed a duplicate setting of this flag.
  3779     Also removed a duplicate setting of this flag.
  3770   Added files that were omitted from the libpng-1.5.7beta03 zip distribution.
  3780   Added files that were omitted from the libpng-1.5.7beta03 zip distribution.
  3771 
  3781 
  3772 Version 1.5.7beta05 [November 25, 2011]
  3782 Version 1.5.7beta05 [November 25, 2011]
  3773   Removed "zTXt" from warning in generic chunk decompression function.
  3783   Removed "zTXt" from warning in generic chunk decompression function.
  3774   Validate time settings passed to pngset() and png_convert_to_rfc1123()
  3784   Validate time settings passed to png_set_tIME() and png_convert_to_rfc1123()
  3775     (Frank Busse).
  3785     (Frank Busse). Note: This prevented CVE-2015-7981 from affecting
       
  3786     libpng-1.5.7 and later.
  3776   Added MINGW support to CMakeLists.txt
  3787   Added MINGW support to CMakeLists.txt
  3777   Reject invalid compression flag or method when reading the iTXt chunk.
  3788   Reject invalid compression flag or method when reading the iTXt chunk.
  3778   Backed out 'simplified' API changes. The API seems too complex and there
  3789   Backed out 'simplified' API changes. The API seems too complex and there
  3779     is a lack of consensus or enthusiasm for the proposals.  The API also
  3790     is a lack of consensus or enthusiasm for the proposals.  The API also
  3780     reveals significant bugs inside libpng (double gamma correction and the
  3791     reveals significant bugs inside libpng (double gamma correction and the
  3816     implementation must provide float.h, limits.h, stdarg.h and stddef.h and
  3827     implementation must provide float.h, limits.h, stdarg.h and stddef.h and
  3817     libpng relies on limits.h and stddef.h existing and behaving as defined
  3828     libpng relies on limits.h and stddef.h existing and behaving as defined
  3818     (the other two required headers aren't used).  Non-ANSI systems that don't
  3829     (the other two required headers aren't used).  Non-ANSI systems that don't
  3819     have stddef.h or limits.h will have to provide an appropriate fake
  3830     have stddef.h or limits.h will have to provide an appropriate fake
  3820     containing the relevant types and #defines.
  3831     containing the relevant types and #defines.
  3821   The use of FAR/far has been eliminated and the definition of png_alloc_size_t
  3832   Dropped support for 16-bit platforms. The use of FAR/far has been eliminated
  3822     is now controlled by a flag so that 'small size_t' systems can select it
  3833     and the definition of png_alloc_size_t is now controlled by a flag so
  3823     if necessary.  Libpng 1.6 may not currently work on such systems -- it
  3834     that 'small size_t' systems can select it if necessary.  Libpng 1.6 may
  3824     seems likely that it will ask 'malloc' for more than 65535 bytes with any
  3835     not currently work on such systems -- it seems likely that it will
  3825     image that has a sufficiently large row size (rather than simply failing
  3836     ask 'malloc' for more than 65535 bytes with any image that has a
  3826     to read such images).
  3837     sufficiently large row size (rather than simply failing to read such
       
  3838     images).
  3827   New tools directory containing tools used to generate libpng code.
  3839   New tools directory containing tools used to generate libpng code.
  3828   Fixed race conditions in parallel make builds. With higher degrees of
  3840   Fixed race conditions in parallel make builds. With higher degrees of
  3829     parallelism during 'make' the use of the same temporary file names such
  3841     parallelism during 'make' the use of the same temporary file names such
  3830     as 'dfn*' can result in a race where a temporary file from one arm of the
  3842     as 'dfn*' can result in a race where a temporary file from one arm of the
  3831     build is deleted or overwritten in another arm.  This changes the
  3843     build is deleted or overwritten in another arm.  This changes the
  4433   Folded long lines.
  4445   Folded long lines.
  4434   Reenabled code to allow zero length PLTE chunks for MNG.
  4446   Reenabled code to allow zero length PLTE chunks for MNG.
  4435 
  4447 
  4436 Version 1.6.1beta03 [February 22, 2013]
  4448 Version 1.6.1beta03 [February 22, 2013]
  4437   Fixed ALIGNED_MEMORY support.
  4449   Fixed ALIGNED_MEMORY support.
  4438   Allow run-time ARM NEON checking to be disabled. A new configure option:
  4450   Added a new configure option:
  4439     --enable-arm-neon=always will stop the run-time checks. New checks
  4451     --enable-arm-neon=always will stop the run-time checks. New checks
  4440     within arm/arm_init.c will cause the code not to be compiled unless
  4452     within arm/arm_init.c will cause the code not to be compiled unless
  4441     __ARM_NEON__ is set. This should make it fail safe (if someone asks
  4453     __ARM_NEON__ is set. This should make it fail safe (if someone asks
  4442     for it on then the build will fail if it can't be done.)
  4454     for it on then the build will fail if it can't be done.)
  4443   Updated the INSTALL document.
  4455   Updated the INSTALL document.
  4452   Avoid a possible memory leak in contrib/gregbook/readpng.c
  4464   Avoid a possible memory leak in contrib/gregbook/readpng.c
  4453 
  4465 
  4454 Version 1.6.1beta06 [March 4, 2013]
  4466 Version 1.6.1beta06 [March 4, 2013]
  4455   Better documentation of unknown handling API interactions.
  4467   Better documentation of unknown handling API interactions.
  4456   Corrected Android builds and corrected libpng.vers with symbol
  4468   Corrected Android builds and corrected libpng.vers with symbol
  4457     prefixing. This adds an API to set optimization options externally,
  4469     prefixing.  It also makes those tests compile and link on Android.
       
  4470   Added an API png_set_option() to set optimization options externally,
  4458     providing an alternative and general solution for the non-portable
  4471     providing an alternative and general solution for the non-portable
  4459     run-time tests used by the ARM Neon code.  It also makes those tests
  4472     run-time tests used by the ARM Neon code, using the PNG_ARM_NEON option.
  4460     compile and link on Android.
       
  4461   The order of settings vs options in pnglibconf.h is reversed to allow
  4473   The order of settings vs options in pnglibconf.h is reversed to allow
  4462     settings to depend on options and options can now set (or override) the
  4474     settings to depend on options and options can now set (or override) the
  4463     defaults for settings.
  4475     defaults for settings.
  4464 
  4476 
  4465 Version 1.6.1beta07 [March 7, 2013]
  4477 Version 1.6.1beta07 [March 7, 2013]
  4547 
  4559 
  4548 Version 1.6.3beta03 [April 30, 2013]
  4560 Version 1.6.3beta03 [April 30, 2013]
  4549   Expanded manual paragraph about writing private chunks, particularly
  4561   Expanded manual paragraph about writing private chunks, particularly
  4550     the need to call png_set_keep_unknown_chunks() when writing them.
  4562     the need to call png_set_keep_unknown_chunks() when writing them.
  4551   Avoid dereferencing NULL pointer possibly returned from
  4563   Avoid dereferencing NULL pointer possibly returned from
  4552      png_create_write_struct() (Andrew Church).
  4564     png_create_write_struct() (Andrew Church).
  4553 
  4565 
  4554 Version 1.6.3beta05 [May 9, 2013]
  4566 Version 1.6.3beta05 [May 9, 2013]
  4555   Calculate our own zlib windowBits when decoding rather than trusting the
  4567   Calculate our own zlib windowBits when decoding rather than trusting the
  4556     CMF bytes in the PNG datastream.
  4568     CMF bytes in the PNG datastream.
  4557   Added an option to force maximum window size for inflating, which was
  4569   Added an option to force maximum window size for inflating, which was
  4558     the behavior of libpng15 and earlier.
  4570     the behavior of libpng15 and earlier, via a new PNG_MAXIMUM_INFLATE_WINDOW
       
  4571     option for png_set_options().
  4559   Added png-fix-itxt and png-fix-too-far-back to the built programs and
  4572   Added png-fix-itxt and png-fix-too-far-back to the built programs and
  4560     removed warnings from the source code and timepng that are revealed as
  4573     removed warnings from the source code and timepng that are revealed as
  4561     a result.
  4574     a result.
  4562   Detect wrong libpng versions linked to png-fix-too-far-back, which currently
  4575   Detect wrong libpng versions linked to png-fix-too-far-back, which currently
  4563     only works with libpng versions that can be made to reliably fail when
  4576     only works with libpng versions that can be made to reliably fail when
  5136 Version 1.6.16beta03 [December 21, 2014]
  5149 Version 1.6.16beta03 [December 21, 2014]
  5137   Quiet a "comparison always true" warning in pngstest.c (John Bowler).
  5150   Quiet a "comparison always true" warning in pngstest.c (John Bowler).
  5138 
  5151 
  5139 Version 1.6.16rc01 [December 21, 2014]
  5152 Version 1.6.16rc01 [December 21, 2014]
  5140   Restored a test on width that was removed from png.c at libpng-1.6.9
  5153   Restored a test on width that was removed from png.c at libpng-1.6.9
  5141     (Bug report by Alex Eubanks).
  5154     (Bug report by Alex Eubanks, CVE-2015-0973).
  5142 
  5155 
  5143 Version 1.6.16rc02 [December 21, 2014]
  5156 Version 1.6.16rc02 [December 21, 2014]
  5144   Undid the update to pngrutil.c in 1.6.16rc01.
  5157   Undid the update to pngrutil.c in 1.6.16rc01.
  5145 
  5158 
  5146 Version 1.6.16rc03 [December 21, 2014]
  5159 Version 1.6.16rc03 [December 21, 2014]
  5147   Fixed an overflow in png_combine_row with very wide interlaced images.
  5160   Fixed an overflow in png_combine_row() with very wide interlaced images
       
  5161     (Bug report and fix by John Bowler, CVE-2014-9495).
  5148 
  5162 
  5149 Version 1.6.16 [December 22, 2014]
  5163 Version 1.6.16 [December 22, 2014]
       
  5164   No changes.
       
  5165 
       
  5166 Version 1.6.17beta01 [January 29, 2015]
       
  5167   Removed duplicate PNG_SAFE_LIMITS_SUPPORTED handling from pngconf.h
       
  5168   Corrected the width limit calculation in png_check_IHDR().
       
  5169   Removed user limits from pngfix. Also pass NULL pointers to
       
  5170     png_read_row to skip the unnecessary row de-interlace stuff.
       
  5171   Added testing of png_set_packing() to pngvalid.c
       
  5172   Regenerated configure scripts in the *.tar distributions with libtool-2.4.4
       
  5173   Implement previously untested cases of libpng transforms in pngvalid.c
       
  5174   Fixed byte order in png_do_read_filler() with 16-bit input. Previously
       
  5175     the high and low bytes of the filler, from png_set_filler() or from
       
  5176     png_set_add_alpha(), were read in the wrong order.
       
  5177   Made the check for out-of-range values in png_set_tRNS() detect
       
  5178     values that are exactly 2^bit_depth, and work on 16-bit platforms.
       
  5179   Merged some parts of libpng-1.6.17beta01 and libpng-1.7.0beta47.
       
  5180   Added #ifndef __COVERITY__ where needed in png.c, pngrutil.c and
       
  5181     pngset.c to avoid warnings about dead code.
       
  5182   Added "& 0xff" to many instances of expressions that are typecast
       
  5183     to (png_byte), to avoid Coverity warnings.
       
  5184 
       
  5185 Version 1.6.17beta02 [February 7, 2015]
       
  5186   Work around one more Coverity-scan dead-code warning.
       
  5187   Do not build png_product2() when it is unused.
       
  5188 
       
  5189 Version 1.6.17beta03 [February 17, 2015]
       
  5190   Display user limits in the output from pngtest.
       
  5191   Eliminated the PNG_SAFE_LIMITS macro and restored the 1-million-column
       
  5192     and 1-million-row default limits in pnglibconf.dfa, that can be reset
       
  5193     by the user at build time or run time.  This provides a more robust
       
  5194     defense against DOS and as-yet undiscovered overflows.
       
  5195 
       
  5196 Version 1.6.17beta04 [February 21, 2015]
       
  5197   Added PNG_WRITE_CUSTOMIZE_COMPRESSION_SUPPORTED macro, on by default.
       
  5198   Allow user to call png_get_IHDR() with NULL arguments (Reuben Hawkins).
       
  5199   Rebuilt configure scripts with automake-1.15 and libtool-2.4.6
       
  5200 
       
  5201 Version 1.6.17beta05 [February 25, 2015]
       
  5202   Restored compiling of png_reciprocal2 with PNG_NO_16BIT.
       
  5203 
       
  5204 Version 1.6.17beta06 [February 27, 2015]
       
  5205   Moved png_set_filter() prototype into a PNG_WRITE_SUPPORTED block
       
  5206     of png.h.
       
  5207   Avoid runtime checks when converting integer to png_byte with
       
  5208     Visual Studio (Sergey Kosarevsky)
       
  5209 
       
  5210 Version 1.6.17rc01 [March 4, 2015]
       
  5211   No changes.
       
  5212 
       
  5213 Version 1.6.17rc02 [March 9, 2015]
       
  5214   Removed some comments that the configure script did not handle
       
  5215     properly from scripts/pnglibconf.dfa and pnglibconf.h.prebuilt.
       
  5216   Free the unknown_chunks structure even when it contains no data.
       
  5217 
       
  5218 Version 1.6.17rc03 [March 12, 2015]
       
  5219   Updated CMakeLists.txt to add OSX framework, change YES/NO to ON/OFF
       
  5220     for consistency, and remove some useless tests (Alexey Petruchik).
       
  5221 
       
  5222 Version 1.6.17rc04 [March 16, 2015]
       
  5223   Remove pnglibconf.h, pnglibconf.c, and pnglibconf.out instead of
       
  5224     pnglibconf.* in "make clean" (Cosmin).
       
  5225   Fix bug in calculation of maxbits, in png_write_sBIT, introduced
       
  5226     in libpng-1.6.17beta01 (John Bowler).
       
  5227 
       
  5228 Version 1.6.17rc05 [March 21, 2015]
       
  5229   Define PNG_FILTER_* and PNG_FILTER_VALUE_* in png.h even when WRITE
       
  5230     is not supported (John Bowler).  This fixes an error introduced in
       
  5231     libpng-1.6.17beta06.
       
  5232   Reverted "& 0xff" additions of version 1.6.17beta01. Libpng passes
       
  5233     the Coverity scan without them.
       
  5234 
       
  5235 Version 1.6.17rc06 [March 23, 2015]
       
  5236   Remove pnglibconf.dfn and pnglibconf.pre with "make clean".
       
  5237   Reformatted some "&0xff" instances to "& 0xff".
       
  5238   Fixed simplified 8-bit-linear to sRGB alpha. The calculated alpha
       
  5239     value was wrong.  It's not clear if this affected the final stored
       
  5240     value; in the obvious code path the upper and lower 8-bits of the
       
  5241     alpha value were identical and the alpha was truncated to 8-bits
       
  5242     rather than dividing by 257 (John Bowler).
       
  5243 
       
  5244 Version 1.6.17 [March 26, 2015]
       
  5245   No changes.
       
  5246 
       
  5247 Version 1.6.18beta01 [April 1, 2015]
       
  5248   Removed PNG_SET_CHUNK_[CACHE|MALLOC]_LIMIT_SUPPORTED macros.  They
       
  5249     have been combined with PNG_SET_USER_LIMITS_SUPPORTED (resolves
       
  5250     bug report by Andrew Church).
       
  5251   Fixed rgb_to_gray checks and added tRNS checks to pngvalid.c.  This
       
  5252     fixes some arithmetic errors that caused some tests to fail on
       
  5253     some 32-bit platforms (Bug reports by Peter Breitenlohner [i686]
       
  5254     and Petr Gajdos [i586]).
       
  5255 
       
  5256 Version 1.6.18beta02 [April 26, 2015]
       
  5257   Suppressed some warnings from the Borland C++ 5.5.1/5.82 compiler
       
  5258     (Bug report by Viktor Szakats).
       
  5259 
       
  5260 Version 1.6.18beta03 [May 6, 2015]
       
  5261   Replaced "unexpected" with an integer (0xabadca11) in pngset.c
       
  5262     where a long was expected, to avoid a compiler warning when PNG_DEBUG > 1.
       
  5263   Added contrib/examples/simpleover.c, to demonstrate how to handle
       
  5264     alpha compositing of multiple images, using the "simplified API"
       
  5265     and an example PNG generation tool, contrib/examples/genpng.c
       
  5266     (John Bowler).
       
  5267 
       
  5268 Version 1.6.18beta04 [May 20, 2015]
       
  5269   PNG_RELEASE_BUILD replaces tests where the code depended on the build base
       
  5270     type and can be defined on the command line, allowing testing in beta
       
  5271     builds (John Bowler).
       
  5272   Avoid Coverity issue 80858 (REVERSE NULL) in pngtest.c PNG_DEBUG builds.
       
  5273   Avoid a harmless potential integer overflow in png_XYZ_from_xy() (Bug
       
  5274     report from Christopher Ferris).
       
  5275 
       
  5276 Version 1.6.18beta05 [May 31, 2015]
       
  5277   Backport filter selection code from libpng-1.7.0beta51, to combine
       
  5278     sub_row, up_row, avg_row, and paeth_row into try_row and tst_row.
       
  5279   Changed png_voidcast(), etc., to voidcast(), etc., in contrib/tools/pngfix.c
       
  5280     to avoid confusion with the libpng private macros.
       
  5281   Fixed old cut&paste bug in the weighted filter selection code in
       
  5282     pngwutil.c, introduced in libpng-0.95, March 1997.
       
  5283 
       
  5284 Version 1.6.18beta06 [June 1, 2015]
       
  5285   Removed WRITE_WEIGHTED_FILTERED code, to save a few kbytes of the
       
  5286     compiled library size. It never worked properly and as far as we can
       
  5287     tell, no one uses it. The png_set_filter_heuristics() and
       
  5288     png_set_filter_heuristics_fixed() APIs are retained but deprecated
       
  5289     and do nothing.
       
  5290 
       
  5291 Version 1.6.18beta07 [June 6, 2015]
       
  5292   Removed non-working progressive reader 'skip' function. This
       
  5293     function has apparently never been used. It was implemented
       
  5294     to support back-door modification of png_struct in libpng-1.4.x
       
  5295     but (because it does nothing and cannot do anything) was apparently
       
  5296     never tested (John Bowler).
       
  5297   Fixed cexcept.h in which GCC 5 now reports that one of the auto
       
  5298     variables in the Try macro needs to be volatile to prevent value
       
  5299     being lost over the setjmp (John Bowler).
       
  5300   Fixed NO_WRITE_FILTER and -Wconversion build breaks (John Bowler).
       
  5301   Fix g++ build breaks (John Bowler).
       
  5302   Quieted some Coverity issues in pngfix.c, png-fix-itxt.c, pngvalid.c,
       
  5303     pngstest.c, and pngimage.c. Most seem harmless, but png-fix-itxt
       
  5304     would only work with iTXt chunks with length 255 or less.
       
  5305   Added #ifdef's to contrib/examples programs so people don't try
       
  5306     to compile them without the minimum required support enabled
       
  5307     (suggested by Flavio Medeiros).
       
  5308 
       
  5309 Version 1.6.18beta08 [June 30, 2015]
       
  5310   Eliminated the final two Coverity defects (insecure temporary file
       
  5311     handling in contrib/libtests/pngstest.c; possible overflow of
       
  5312     unsigned char in contrib/tools/png-fix-itxt.c). To use the "secure"
       
  5313     file handling, define PNG_USE_MKSTEMP, otherwise "tmpfile()" will
       
  5314     be used.
       
  5315   Removed some unused WEIGHTED_FILTER macros from png.h and pngstruct.h
       
  5316 
       
  5317 Version 1.6.18beta09 [July 5, 2015]
       
  5318   Removed some useless typecasts from contrib/tools/png-fix-itxt.c
       
  5319   Fixed a new signed-unsigned comparison in pngrtran.c (Max Stepin).
       
  5320   Replaced arbitrary use of 'extern' with #define PNG_LINKAGE_*.  To
       
  5321     preserve API compatibility, the new defines all default to "extern"
       
  5322     (requested by Jan Nijtmans).
       
  5323 
       
  5324 Version 1.6.18rc01 [July 9, 2015]
       
  5325   Belatedly added Mans Rullgard and James Yu to the list of Contributing
       
  5326     Authors.
       
  5327 
       
  5328 Version 1.6.18rc02 [July 12, 2015]
       
  5329   Restored unused FILTER_HEURISTIC macros removed at libpng-1.6.18beta08
       
  5330     to png.h to avoid compatibility warnings.
       
  5331 
       
  5332 Version 1.6.18rc03 [July 15, 2015]
       
  5333   Minor changes to the man page
       
  5334 
       
  5335 Version 1.6.18 [July 23, 2015]
       
  5336   No changes.
       
  5337 
       
  5338 Version 1.6.19beta01 [July 30, 2015]
       
  5339   Updated obsolete information about the simplified API macros in the
       
  5340     manual pages (Bug report by Arc Riley).
       
  5341   Avoid potentially dereferencing NULL info_ptr in png_info_init_3().
       
  5342   Rearranged png.h to put the major sections in the same order as
       
  5343     in libpng17.
       
  5344   Eliminated unused PNG_COST_SHIFT, PNG_WEIGHT_SHIFT, PNG_COST_FACTOR, and
       
  5345     PNG_WEIGHT_FACTOR macros.
       
  5346   Suppressed some warnings from the Borland C++ 5.5.1/5.82 compiler
       
  5347     (Bug report by Viktor Szakats).  Several warnings remain and are
       
  5348     unavoidable, where we test for overflow.
       
  5349   Fixed potential leak of png_pixels in contrib/pngminus/pnm2png.c
       
  5350   Fixed uninitialized variable in contrib/gregbook/rpng2-x.c
       
  5351 
       
  5352 Version 1.6.19beta02 [August 19, 2015]
       
  5353   Moved config.h.in~ from the "libpng_autotools_files" list to the
       
  5354     "libpng_autotools_extra" list in autogen.sh because it was causing a
       
  5355     false positive for missing files (bug report by Robert C. Seacord).
       
  5356   Removed unreachable "break" statements in png.c, pngread.c, and pngrtran.c
       
  5357     to suppress clang warnings (Bug report by Viktor Szakats).
       
  5358   Fixed some bad links in the man page.
       
  5359   Changed "n bit" to "n-bit" in comments.
       
  5360   Added signed/unsigned 16-bit safety net. This removes the dubious
       
  5361     0x8000 flag definitions on 16-bit systems. They aren't supported
       
  5362     yet the defs *probably* work, however it seems much safer to do this
       
  5363     and be advised if anyone, contrary to advice, is building libpng 1.6
       
  5364     on a 16-bit system. It also adds back various switch default clauses
       
  5365     for GCC; GCC errors out if they are not present (with an appropriately
       
  5366     high level of warnings).
       
  5367   Safely convert num_bytes to a png_byte in png_set_sig_bytes() (Robert
       
  5368     Seacord).
       
  5369   Fixed the recently reported 1's complement security issue by replacing
       
  5370     the value that is illegal in the PNG spec, in both signed and unsigned
       
  5371     values, with 0. Illegal unsigned values (anything greater than or equal
       
  5372     to  0x80000000) can still pass through, but since these are not illegal
       
  5373     in ANSI-C (unlike 0x80000000 in the signed case) the checking that
       
  5374     occurs later can catch them (John Bowler).
       
  5375 
       
  5376 Version 1.6.19beta03 [September 26, 2015]
       
  5377   Fixed png_save_int_32 when int is not 2's complement (John Bowler).
       
  5378   Updated libpng16 with all the recent test changes from libpng17,
       
  5379     including changes to pngvalid.c to ensure that the original,
       
  5380     distributed, version of contrib/visupng/cexcept.h can be used
       
  5381     (John Bowler).
       
  5382   pngvalid contains the correction to the use of SAVE/STORE_
       
  5383     UNKNOWN_CHUNKS; a bug revealed by changes in libpng 1.7. More
       
  5384     tests contain the --strict option to detect warnings and the
       
  5385     pngvalid-standard test has been corrected so that it does not
       
  5386     turn on progressive-read. There is a separate test which does
       
  5387     that. (John Bowler)
       
  5388   Also made some signed/unsigned fixes.
       
  5389   Make pngstest error limits version specific. Splitting the machine
       
  5390     generated error structs out to a file allows the values to be updated
       
  5391     without changing pngstest.c itself. Since libpng 1.6 and 1.7 have
       
  5392     slightly different error limits this simplifies maintenance. The
       
  5393     makepngs.sh script has also been updated to more accurately reflect
       
  5394     current problems in libpng 1.7 (John Bowler).
       
  5395   Incorporated new test PNG files into make check.  tests/pngstest-*
       
  5396     are changed so that the new test files are divided into 8 groups by
       
  5397     gamma and alpha channel.  These tests have considerably better code
       
  5398     and pixel-value coverage than contrib/pngsuite; however,coverage is
       
  5399     still incomplete (John Bowler).
       
  5400   Removed the '--strict' in 1.6 because of the double-gamma-correction
       
  5401     warning, updated pngstest-errors.h for the errors detected with the
       
  5402     new contrib/testspngs PNG test files (John Bowler).
       
  5403 
       
  5404 Version 1.6.19beta04 [October 15, 2015]
       
  5405   Worked around rgb-to-gray issues in libpng 1.6.  The previous
       
  5406     attempts to ignore the errors in the code aren't quite enough to
       
  5407     deal with the 'channel selection' encoding added to libpng 1.7; abort.
       
  5408     pngvalid.c is changed to drop this encoding in prior versions.
       
  5409   Fixed 'pow' macros in pngvalid.c. It is legal for 'pow' to be a
       
  5410     macro, therefore the argument list cannot contain preprocessing
       
  5411     directives.  Make sure pow is a function where this happens. This is
       
  5412     a minimal safe fix, the issue only arises in non-performance-critical
       
  5413     code (bug report by Curtis Leach, fix by John Bowler).
       
  5414   Added sPLT support to pngtest.c
       
  5415 
       
  5416 Version 1.6.19rc01 [October 23, 2015]
       
  5417   No changes.
       
  5418 
       
  5419 Version 1.6.19rc02 [October 31, 2015]
       
  5420   Prevent setting or writing over-length PLTE chunk (Cosmin Truta).
       
  5421   Silently truncate over-length PLTE chunk while reading.
       
  5422   Libpng incorrectly calculated the output rowbytes when the application
       
  5423     decreased either the number of channels or the bit depth (or both) in
       
  5424     a user transform.  This was safe; libpng overallocated buffer space
       
  5425    (potentially by quite a lot; up to 4 times the amount required) but,
       
  5426    from 1.5.4 on, resulted in a png_error (John Bowler).
       
  5427 
       
  5428 Version 1.6.19rc03 [November 3, 2015]
       
  5429   Fixed some inconsequential cut-and-paste typos in png_set_cHRM_XYZ_fixed().
       
  5430   Clarified COPYRIGHT information to state explicitly that versions
       
  5431     are derived from previous versions.
       
  5432   Removed much of the long list of previous versions from png.h and
       
  5433     libpng.3.
       
  5434 
       
  5435 Version 1.6.19rc04 [November 5, 2015]
       
  5436   Fixed new bug with CRC error after reading an over-length palette
       
  5437     (bug report by Cosmin Truta) (CVE-2015-8126).
       
  5438 
       
  5439 Version 1.6.19 [November 12, 2015]
       
  5440   Cleaned up coding style in png_handle_PLTE().
       
  5441 
       
  5442 Version 1.6.20beta01 [November 20, 2015]
       
  5443   Avoid potential pointer overflow/underflow in png_handle_sPLT() and
       
  5444     png_handle_pCAL() (Bug report by John Regehr).
       
  5445 
       
  5446 Version 1.6.20beta02 [November 23, 2015]
       
  5447   Fixed incorrect implementation of png_set_PLTE() that uses png_ptr
       
  5448     not info_ptr, that left png_set_PLTE() open to the CVE-2015-8126
       
  5449     vulnerability.
       
  5450 
       
  5451 Version 1.6.20beta03 [November 24, 2015]
       
  5452   Backported tests from libpng-1.7.0beta69.
       
  5453 
       
  5454 Version 1.6.20rc01 [November 26, 2015]
       
  5455   Fixed an error in handling of bad zlib CMINFO field in pngfix, found by
       
  5456     American Fuzzy Lop, reported by Brian Carpenter.  inflate() doesn't
       
  5457     immediately fault a bad CMINFO field; instead a 'too far back' error
       
  5458     happens later (at least some times).  pngfix failed to limit CMINFO to
       
  5459     the allowed values but then assumed that window_bits was in range,
       
  5460     triggering an assert. The bug is mostly harmless; the PNG file cannot
       
  5461     be fixed.
       
  5462 
       
  5463 Version 1.6.20rc02 [November 29, 2015]
       
  5464   In libpng 1.6 zlib initialization was changed to use the window size
       
  5465     in the zlib stream, not a fixed value. This causes some invalid images,
       
  5466     where CINFO is too large, to display 'correctly' if the rest of the
       
  5467     data is valid.  This provides a workaround for zlib versions where the
       
  5468     error arises (ones that support the API change to use the window size
       
  5469     in the stream).
       
  5470 
       
  5471 Version 1.6.20 [December 3, 2015]
  5150   No changes.
  5472   No changes.
  5151 
  5473 
  5152 Send comments/corrections/commendations to png-mng-implement at lists.sf.net
  5474 Send comments/corrections/commendations to png-mng-implement at lists.sf.net
  5153 (subscription required; visit
  5475 (subscription required; visit
  5154 https://lists.sourceforge.net/lists/listinfo/png-mng-implement
  5476 https://lists.sourceforge.net/lists/listinfo/png-mng-implement
  5155 to subscribe)
  5477 to subscribe)
  5156 or to glennrp at users.sourceforge.net
  5478 or to glennrp at users.sourceforge.net
  5157 
  5479 
  5158 Glenn R-P
  5480 Glenn R-P
       
  5481 #endif