libpng-1.0.64, 1.4.17, 1.2.54, 1.5.24, and libpng-1.6.19 are available

Glenn Randers-Pehrson <[email protected]> Thu, 12 Nov 2015 11:08:38 -0500
Newsgroups gmane.comp.graphics.png.announce
Message-ID <CA+PdXcsN_-OC=38MK_zhjXNspXWwjpFmvWUbcFTb=_uLzxa_gg__13029.7739095569$1447344571$gmane$org@mail.gmail.com>
--===============6683449711063401853==
Content-Type: multipart/alternative; boundary=94eb2c030c10e2b45c05245a271f

--94eb2c030c10e2b45c05245a271f
Content-Type: text/plain; charset=UTF-8

libpng-1.0.64, 1.2.54, 1.4.17, 1.5.24, and libpng-1.6.19 are
available from
ftp:ftp.simplesystems.org/pub/png/src/
and from
http://libpng.sf.net

These are security releases that fix a potential out-of-bounds
read in png_set_tIME()/png_convert_to_rfc1123() and a potential
out-of-bounds write in png_get_PLTE()/png_set_PLTE() in all previous
versions.

Glenn

Libpng 1.0.64 - November 12, 2015
Changes since the last public release (1.0.63):
  Fix typecast in a png_debug2() statement in png_set_text_2() to
    avoid a compiler warning in PNG_DEBUG builds.
  Fixed printf formats in pngtest.c to avoid compiler warnings and a
    Coverity warning in PNG_DEBUG builds.
  Avoid Coverity issue 80858 (REVERSE NULL) in pngtest.c PNG_DEBUG builds.
  Removed WRITE_WEIGHTED_FILTERED code.
  Avoid potentially dereferencing NULL info_ptr in png_info_init_3().
  Fixed potential leak of png_pixels in contrib/pngminus/pnm2png.c
  Use nanosleep() instead of usleep() in contrib/gregbook/rpng2-x.c
    because usleep() is deprecated (port from libpng16).
  Fixed some bad links in the man page.
  Added a safety check in png_set_tIME() (Fixes CVE-2015-7981, bug report
    from Qixue Xiao).
  Prevent writing over-length PLTE chunk (Cosmin Truta).
  Silently truncate over-length PLTE chunk while reading.
  Clarified COPYRIGHT information to state explicitly that versions
    are derived from previous versions.
  Removed much of the long list of previous versions from png.h and
    libpng.3.

Libpng 1.2.54 - November 12, 2015
Changes since the last public release (1.2.53):
  Fix typecast in a png_debug2() statement in png_set_text_2() to
    avoid a compiler warning in PNG_DEBUG builds.
  Fixed printf formats in pngtest.c to avoid compiler warnings and a
    Coverity warning in PNG_DEBUG builds.
  Avoid Coverity issue 80858 (REVERSE NULL) in pngtest.c PNG_DEBUG builds.
  Removed WRITE_WEIGHTED_FILTERED code.
  Avoid potentially dereferencing NULL info_ptr in png_info_init_3().
  Fixed potential leak of png_pixels in contrib/pngminus/pnm2png.c
  Use nanosleep() instead of usleep() in contrib/gregbook/rpng2-x.c
    because usleep() is deprecated (port from libpng16).
  Fixed some bad links in the man page.
  Added a safety check in png_set_tIME() (Fixes CVE-2015-7981, bug report
    from Qixue Xiao).
  Prevent writing over-length PLTE chunk (Cosmin Truta).
  Silently truncate over-length PLTE chunk while reading.
  Clarified COPYRIGHT information to state explicitly that versions
    are derived from previous versions.
  Removed much of the long list of previous versions from png.h and
    libpng.3.

Libpng 1.4.17 - November 12, 2015
Changes since the last public release (1.4.16):
  Fixed typecast in a png_debug2() statement in png_set_text_2() to
    avoid a compiler warning in PNG_DEBUG builds.
  Avoid Coverity issues 80855, 80856, and 80857 (PRINTF_ARG_MISMATCH)
    in pngtest.c PNG_DEBUG builds.
  Avoid Coverity issue 80858 (REVERSE NULL) in pngtest.c PNG_DEBUG builds.
  Removed WRITE_WEIGHTED_FILTERED code.
  Added -DZ_SOLO to contrib/pngminim/*/makefile to work with zlib-1.2.7+
  Use nanosleep() instead of usleep() in contrib/gregbook/rpng2-x.c
    because usleep() is deprecated (port from libpng16).
  Fixed potential leak of png_pixels in contrib/pngminus/pnm2png.c
  Fixed uninitialized variable in contrib/gregbook/rpng2-x.c
  Fixed some bad links in the man page.
  Safely convert num_bytes to a png_byte in png_set_sig_bytes() (Robert
    Seacord).
  Fixed the recently reported 1's complement security issue by replacing
    the value that is illegal in the PNG spec, in both signed and unsigned
    values, with 0. Illegal unsigned values (anything greater than or equal
    to  0x80000000) can still pass through, but since these are not illegal
    in ANSI-C (unlike 0x80000000 in the signed case) the checking that
    occurs later can catch them (John Bowler).
  Fixed png_save_int_32 when int is not 2's complement (John Bowler).
  Added sPLT support to pngtest.c
  Added a safety check in png_set_tIME() (Fixes CVE-2015-7981, bug report
    from Qixue Xiao).
  Prevent writing over-length PLTE chunk (Cosmin Truta).
  Silently truncate over-length PLTE chunk while reading.
  Clarified COPYRIGHT information to state explicitly that versions
    are derived from previous versions.
  Removed much of the long list of previous versions from png.h and
    libpng.3.

Libpng 1.5.24 - November 12, 2015
Changes since the last public release (1.5.23):
  Avoid potentially dereferencing NULL info_ptr in png_info_init_3().
  Eliminated unused PNG_COST_SHIFT, PNG_WEIGHT_SHIFT, PNG_COST_FACTOR, and
    PNG_WEIGHT_FACTOR macros.
  Fixed potential leak of png_pixels in contrib/pngminus/pnm2png.c
  Fixed uninitialized variable in contrib/gregbook/rpng2-x.c
  Fixed some bad links in the man page.
  Safely convert num_bytes to a png_byte in png_set_sig_bytes() (Robert
    Seacord).
  Fixed the recently reported 1's complement security issue by replacing
    the value that is illegal in the PNG spec, in both signed and unsigned
    values, with 0. Illegal unsigned values (anything greater than or equal
    to  0x80000000) can still pass through, but since these are not illegal
    in ANSI-C (unlike 0x80000000 in the signed case) the checking that
    occurs later can catch them (John Bowler).
  Fixed png_save_int_32 when int is not 2's complement (John Bowler).
  Fixed byte order in png_do_read_filler() with 16-bit input (previously
    fixed in libpng-1.6.17 and 1.7.0beta46). Previously the high and
    low bytes of the filler, from png_set_filler() or from
    png_set_add_alpha(), were read in the wrong order.
  Merged pngvalid.c with version 1.6.19.
  Added sPLT support to pngtest.c
  Prevent writing over-length PLTE chunk (Cosmin Truta).
  Libpng incorrectly calculated the output rowbytes when the application
    decreased either the number of channels or the bit depth (or both) in
    a user transform.  This was safe; libpng overallocated buffer space
   (potentially by quite a lot; up to 4 times the amount required) but,
   from 1.5.4 on, resulted in a png_error (John Bowler).
  Silently truncate over-length PLTE chunk while reading.
  Fixed some inconsequential cut-and-paste typos in
png_set_cHRM_XYZ_fixed().
  Clarified COPYRIGHT information to state explicitly that versions
    are derived from previous versions.
  Removed much of the long list of previous versions from png.h and
    libpng.3.

Libpng 1.6.19 - November 12, 2015
Changes since the last public release (1.6.18):
  Updated obsolete information about the simplified API macros in the
    manual pages (Bug report by Arc Riley).
  Avoid potentially dereferencing NULL info_ptr in png_info_init_3().
  Rearranged png.h to put the major sections in the same order as
    in libpng17.
  Eliminated unused PNG_COST_SHIFT, PNG_WEIGHT_SHIFT, PNG_COST_FACTOR, and
    PNG_WEIGHT_FACTOR macros.
  Suppressed some warnings from the Borland C++ 5.5.1/5.82 compiler
    (Bug report by Viktor Szakats).  Several warnings remain and are
    unavoidable, where we test for overflow.
  Fixed potential leak of png_pixels in contrib/pngminus/pnm2png.c
  Fixed uninitialized variable in contrib/gregbook/rpng2-x.c
  Moved config.h.in~ from the "libpng_autotools_files" list to the
    "libpng_autotools_extra" list in autogen.sh because it was causing a
    false positive for missing files (bug report by Robert C. Seacord).
  Removed unreachable "break" statements in png.c, pngread.c, and pngrtran.c
    to suppress clang warnings (Bug report by Viktor Szakats).
  Fixed some bad links in the man page.
  Changed "n bit" to "n-bit" in comments.
  Added signed/unsigned 16-bit safety net. This removes the dubious
    0x8000 flag definitions on 16-bit systems. They aren't supported
    yet the defs *probably* work, however it seems much safer to do this
    and be advised if anyone, contrary to advice, is building libpng 1.6
    on a 16-bit system. It also adds back various switch default clauses
    for GCC; GCC errors out if they are not present (with an appropriately
    high level of warnings).
  Safely convert num_bytes to a png_byte in png_set_sig_bytes() (Robert
    Seacord).
  Fixed the recently reported 1's complement security issue by replacing
    the value that is illegal in the PNG spec, in both signed and unsigned
    values, with 0. Illegal unsigned values (anything greater than or equal
    to  0x80000000) can still pass through, but since these are not illegal
    in ANSI-C (unlike 0x80000000 in the signed case) the checking that
    occurs later can catch them (John Bowler).
  Fixed png_save_int_32 when int is not 2's complement (John Bowler).
  Updated libpng16 with all the recent test changes from libpng17,
    including changes to pngvalid.c to ensure that the original,
    distributed, version of contrib/visupng/cexcept.h can be used
    (John Bowler).
  pngvalid contains the correction to the use of SAVE/STORE_
    UNKNOWN_CHUNKS; a bug revealed by changes in libpng 1.7. More
    tests contain the --strict option to detect warnings and the
    pngvalid-standard test has been corrected so that it does not
    turn on progressive-read. There is a separate test which does
    that. (John Bowler)
  Also made some signed/unsigned fixes.
  Make pngstest error limits version specific. Splitting the machine
    generated error structs out to a file allows the values to be updated
    without changing pngstest.c itself. Since libpng 1.6 and 1.7 have
    slightly different error limits this simplifies maintenance. The
    makepngs.sh script has also been updated to more accurately reflect
    current problems in libpng 1.7 (John Bowler).
  Incorporated new test PNG files into make check.  tests/pngstest-*
    are changed so that the new test files are divided into 8 groups by
    gamma and alpha channel.  These tests have considerably better code
    and pixel-value coverage than contrib/pngsuite; however,coverage is
    still incomplete (John Bowler).
  Removed the '--strict' in 1.6 because of the double-gamma-correction
    warning, updated pngstest-errors.h for the errors detected with the
    new contrib/testspngs PNG test files (John Bowler).
  Worked around rgb-to-gray issues in libpng 1.6.  The previous
    attempts to ignore the errors in the code aren't quite enough to
    deal with the 'channel selection' encoding added to libpng 1.7; abort.
  Fixed 'pow' macros in pngvalid.c. It is legal for 'pow' to be a
    macro, therefore the argument list cannot contain preprocessing
    directives.  Make sure pow is a function where this happens. This is
    a minimal safe fix, the issue only arises in non-performance-critical
    code (bug report by Curtis Leach, fix by John Bowler).
  Added sPLT support to pngtest.c
  Prevent setting or writing over-length PLTE chunk (Cosmin Truta).
  Silently truncate over-length PLTE chunk while reading.
  Libpng incorrectly calculated the output rowbytes when the application
    decreased either the number of channels or the bit depth (or both) in
    a user transform.  This was safe; libpng overallocated buffer space
   (potentially by quite a lot; up to 4 times the amount required) but,
   from 1.5.4 on, resulted in a png_error (John Bowler).
  Fixed some inconsequential cut-and-paste typos in
png_set_cHRM_XYZ_fixed().
  Clarified COPYRIGHT information to state explicitly that versions
    are derived from previous versions.
  Removed much of the long list of previous versions from png.h and
    libpng.3.

--94eb2c030c10e2b45c05245a271f
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">libpng-1.0.64, 1.2.54, 1.4.17, 1.5.24, and libpng-1.6.19 a=
re<br>available from<br>ftp:<a href=3D"http://ftp.simplesystems.org/pub/png=
/src/">ftp.simplesystems.org/pub/png/src/</a><br>and from<br><a href=3D"htt=
p://libpng.sf.net">http://libpng.sf.net</a><br><br>These are security relea=
ses that fix a potential out-of-bounds<br>read in png_set_tIME()/png_conver=
t_to_rfc1123() and a potential<br>out-of-bounds write in png_get_PLTE()/png=
_set_PLTE() in all previous<br>versions.<br><br>Glenn<br><br>Libpng 1.0.64 =
- November 12, 2015<br>Changes since the last public release (1.0.63):<br>=
=C2=A0 Fix typecast in a png_debug2() statement in png_set_text_2() to<br>=
=C2=A0=C2=A0=C2=A0 avoid a compiler warning in PNG_DEBUG builds.<br>=C2=A0 =
Fixed printf formats in pngtest.c to avoid compiler warnings and a<br>=C2=
=A0=C2=A0=C2=A0 Coverity warning in PNG_DEBUG builds.<br>=C2=A0 Avoid Cover=
ity issue 80858 (REVERSE NULL) in pngtest.c PNG_DEBUG builds.<br>=C2=A0 Rem=
oved WRITE_WEIGHTED_FILTERED code.<br>=C2=A0 Avoid potentially dereferencin=
g NULL info_ptr in png_info_init_3().<br>=C2=A0 Fixed potential leak of png=
_pixels in contrib/pngminus/pnm2png.c<br>=C2=A0 Use nanosleep() instead of =
usleep() in contrib/gregbook/rpng2-x.c<br>=C2=A0=C2=A0=C2=A0 because usleep=
() is deprecated (port from libpng16).<br>=C2=A0 Fixed some bad links in th=
e man page.<br>=C2=A0 Added a safety check in png_set_tIME() (Fixes CVE-201=
5-7981, bug report<br>=C2=A0=C2=A0=C2=A0 from Qixue Xiao).<br>=C2=A0 Preven=
t writing over-length PLTE chunk (Cosmin Truta).<br>=C2=A0 Silently truncat=
e over-length PLTE chunk while reading.<br>=C2=A0 Clarified COPYRIGHT infor=
mation to state explicitly that versions<br>=C2=A0=C2=A0=C2=A0 are derived =
from previous versions.<br>=C2=A0 Removed much of the long list of previous=
 versions from png.h and<br>=C2=A0=C2=A0=C2=A0 libpng.3.<br><br>Libpng 1.2.=
54 - November 12, 2015<br>Changes since the last public release (1.2.53):<b=
r>=C2=A0 Fix typecast in a png_debug2() statement in png_set_text_2() to<br=
>=C2=A0=C2=A0=C2=A0 avoid a compiler warning in PNG_DEBUG builds.<br>=C2=A0=
 Fixed printf formats in pngtest.c to avoid compiler warnings and a<br>=C2=
=A0=C2=A0=C2=A0 Coverity warning in PNG_DEBUG builds.<br>=C2=A0 Avoid Cover=
ity issue 80858 (REVERSE NULL) in pngtest.c PNG_DEBUG builds.<br>=C2=A0 Rem=
oved WRITE_WEIGHTED_FILTERED code.<br>=C2=A0 Avoid potentially dereferencin=
g NULL info_ptr in png_info_init_3().<br>=C2=A0 Fixed potential leak of png=
_pixels in contrib/pngminus/pnm2png.c<br>=C2=A0 Use nanosleep() instead of =
usleep() in contrib/gregbook/rpng2-x.c<br>=C2=A0=C2=A0=C2=A0 because usleep=
() is deprecated (port from libpng16).<br>=C2=A0 Fixed some bad links in th=
e man page.<br>=C2=A0 Added a safety check in png_set_tIME() (Fixes CVE-201=
5-7981, bug report<br>=C2=A0=C2=A0=C2=A0 from Qixue Xiao).<br>=C2=A0 Preven=
t writing over-length PLTE chunk (Cosmin Truta).<br>=C2=A0 Silently truncat=
e over-length PLTE chunk while reading.<br>=C2=A0 Clarified COPYRIGHT infor=
mation to state explicitly that versions<br>=C2=A0=C2=A0=C2=A0 are derived =
from previous versions.<br>=C2=A0 Removed much of the long list of previous=
 versions from png.h and<br>=C2=A0=C2=A0=C2=A0 libpng.3.<br><br>Libpng 1.4.=
17 - November 12, 2015<br>Changes since the last public release (1.4.16):<b=
r>=C2=A0 Fixed typecast in a png_debug2() statement in png_set_text_2() to<=
br>=C2=A0=C2=A0=C2=A0 avoid a compiler warning in PNG_DEBUG builds.<br>=C2=
=A0 Avoid Coverity issues 80855, 80856, and 80857 (PRINTF_ARG_MISMATCH)<br>=
=C2=A0=C2=A0=C2=A0 in pngtest.c PNG_DEBUG builds.<br>=C2=A0 Avoid Coverity =
issue 80858 (REVERSE NULL) in pngtest.c PNG_DEBUG builds.<br>=C2=A0 Removed=
 WRITE_WEIGHTED_FILTERED code.<br>=C2=A0 Added -DZ_SOLO to contrib/pngminim=
/*/makefile to work with zlib-1.2.7+<br>=C2=A0 Use nanosleep() instead of u=
sleep() in contrib/gregbook/rpng2-x.c<br>=C2=A0=C2=A0=C2=A0 because usleep(=
) is deprecated (port from libpng16).<br>=C2=A0 Fixed potential leak of png=
_pixels in contrib/pngminus/pnm2png.c<br>=C2=A0 Fixed uninitialized variabl=
e in contrib/gregbook/rpng2-x.c<br>=C2=A0 Fixed some bad links in the man p=
age.<br>=C2=A0 Safely convert num_bytes to a png_byte in png_set_sig_bytes(=
) (Robert<br>=C2=A0=C2=A0=C2=A0 Seacord).<br>=C2=A0 Fixed the recently repo=
rted 1&#39;s complement security issue by replacing<br>=C2=A0=C2=A0=C2=A0 t=
he value that is illegal in the PNG spec, in both signed and unsigned<br>=
=C2=A0=C2=A0=C2=A0 values, with 0. Illegal unsigned values (anything greate=
r than or equal<br>=C2=A0=C2=A0=C2=A0 to=C2=A0 0x80000000) can still pass t=
hrough, but since these are not illegal<br>=C2=A0=C2=A0=C2=A0 in ANSI-C (un=
like 0x80000000 in the signed case) the checking that<br>=C2=A0=C2=A0=C2=A0=
 occurs later can catch them (John Bowler).<br>=C2=A0 Fixed png_save_int_32=
 when int is not 2&#39;s complement (John Bowler).<br>=C2=A0 Added sPLT sup=
port to pngtest.c<br>=C2=A0 Added a safety check in png_set_tIME() (Fixes C=
VE-2015-7981, bug report<br>=C2=A0=C2=A0=C2=A0 from Qixue Xiao).<br>=C2=A0 =
Prevent writing over-length PLTE chunk (Cosmin Truta).<br>=C2=A0 Silently t=
runcate over-length PLTE chunk while reading.<br>=C2=A0 Clarified COPYRIGHT=
 information to state explicitly that versions<br>=C2=A0=C2=A0=C2=A0 are de=
rived from previous versions.<br>=C2=A0 Removed much of the long list of pr=
evious versions from png.h and<br>=C2=A0=C2=A0=C2=A0 libpng.3.<br><br>Libpn=
g 1.5.24 - November 12, 2015<br>Changes since the last public release (1.5.=
23):<br>=C2=A0 Avoid potentially dereferencing NULL info_ptr in png_info_in=
it_3().<br>=C2=A0 Eliminated unused PNG_COST_SHIFT, PNG_WEIGHT_SHIFT, PNG_C=
OST_FACTOR, and<br>=C2=A0=C2=A0=C2=A0 PNG_WEIGHT_FACTOR macros.<br>=C2=A0 F=
ixed potential leak of png_pixels in contrib/pngminus/pnm2png.c<br>=C2=A0 F=
ixed uninitialized variable in contrib/gregbook/rpng2-x.c<br>=C2=A0 Fixed s=
ome bad links in the man page.<br>=C2=A0 Safely convert num_bytes to a png_=
byte in png_set_sig_bytes() (Robert<br>=C2=A0=C2=A0=C2=A0 Seacord).<br>=C2=
=A0 Fixed the recently reported 1&#39;s complement security issue by replac=
ing<br>=C2=A0=C2=A0=C2=A0 the value that is illegal in the PNG spec, in bot=
h signed and unsigned<br>=C2=A0=C2=A0=C2=A0 values, with 0. Illegal unsigne=
d values (anything greater than or equal<br>=C2=A0=C2=A0=C2=A0 to=C2=A0 0x8=
0000000) can still pass through, but since these are not illegal<br>=C2=A0=
=C2=A0=C2=A0 in ANSI-C (unlike 0x80000000 in the signed case) the checking =
that<br>=C2=A0=C2=A0=C2=A0 occurs later can catch them (John Bowler).<br>=
=C2=A0 Fixed png_save_int_32 when int is not 2&#39;s complement (John Bowle=
r).<br>=C2=A0 Fixed byte order in png_do_read_filler() with 16-bit input (p=
reviously<br>=C2=A0=C2=A0=C2=A0 fixed in libpng-1.6.17 and 1.7.0beta46). Pr=
eviously the high and<br>=C2=A0=C2=A0=C2=A0 low bytes of the filler, from p=
ng_set_filler() or from<br>=C2=A0=C2=A0=C2=A0 png_set_add_alpha(), were rea=
d in the wrong order.<br>=C2=A0 Merged pngvalid.c with version 1.6.19.<br>=
=C2=A0 Added sPLT support to pngtest.c<br>=C2=A0 Prevent writing over-lengt=
h PLTE chunk (Cosmin Truta).<br>=C2=A0 Libpng incorrectly calculated the ou=
tput rowbytes when the application<br>=C2=A0=C2=A0=C2=A0 decreased either t=
he number of channels or the bit depth (or both) in<br>=C2=A0=C2=A0=C2=A0 a=
 user transform.=C2=A0 This was safe; libpng overallocated buffer space<br>=
=C2=A0=C2=A0 (potentially by quite a lot; up to 4 times the amount required=
) but,<br>=C2=A0=C2=A0 from 1.5.4 on, resulted in a png_error (John Bowler)=
.<br>=C2=A0 Silently truncate over-length PLTE chunk while reading.<br>=C2=
=A0 Fixed some inconsequential cut-and-paste typos in png_set_cHRM_XYZ_fixe=
d().<br>=C2=A0 Clarified COPYRIGHT information to state explicitly that ver=
sions<br>=C2=A0=C2=A0=C2=A0 are derived from previous versions.<br>=C2=A0 R=
emoved much of the long list of previous versions from png.h and<br>=C2=A0=
=C2=A0=C2=A0 libpng.3.<br><br>Libpng 1.6.19 - November 12, 2015<br>Changes =
since the last public release (1.6.18):<br>=C2=A0 Updated obsolete informat=
ion about the simplified API macros in the<br>=C2=A0=C2=A0=C2=A0 manual pag=
es (Bug report by Arc Riley).<br>=C2=A0 Avoid potentially dereferencing NUL=
L info_ptr in png_info_init_3().<br>=C2=A0 Rearranged png.h to put the majo=
r sections in the same order as<br>=C2=A0=C2=A0=C2=A0 in libpng17.<br>=C2=
=A0 Eliminated unused PNG_COST_SHIFT, PNG_WEIGHT_SHIFT, PNG_COST_FACTOR, an=
d<br>=C2=A0=C2=A0=C2=A0 PNG_WEIGHT_FACTOR macros.<br>=C2=A0 Suppressed some=
 warnings from the Borland C++ 5.5.1/5.82 compiler<br>=C2=A0=C2=A0=C2=A0 (B=
ug report by Viktor Szakats).=C2=A0 Several warnings remain and are<br>=C2=
=A0=C2=A0=C2=A0 unavoidable, where we test for overflow.<br>=C2=A0 Fixed po=
tential leak of png_pixels in contrib/pngminus/pnm2png.c<br>=C2=A0 Fixed un=
initialized variable in contrib/gregbook/rpng2-x.c<br>=C2=A0 Moved <a href=
=3D"http://config.h.in">config.h.in</a>~ from the &quot;libpng_autotools_fi=
les&quot; list to the<br>=C2=A0=C2=A0=C2=A0 &quot;libpng_autotools_extra&qu=
ot; list in autogen.sh because it was causing a<br>=C2=A0=C2=A0=C2=A0 false=
 positive for missing files (bug report by Robert C. Seacord).<br>=C2=A0 Re=
moved unreachable &quot;break&quot; statements in png.c, pngread.c, and png=
rtran.c<br>=C2=A0=C2=A0=C2=A0 to suppress clang warnings (Bug report by Vik=
tor Szakats).<br>=C2=A0 Fixed some bad links in the man page.<br>=C2=A0 Cha=
nged &quot;n bit&quot; to &quot;n-bit&quot; in comments.<br>=C2=A0 Added si=
gned/unsigned 16-bit safety net. This removes the dubious<br>=C2=A0=C2=A0=
=C2=A0 0x8000 flag definitions on 16-bit systems. They aren&#39;t supported=
<br>=C2=A0=C2=A0=C2=A0 yet the defs *probably* work, however it seems much =
safer to do this<br>=C2=A0=C2=A0=C2=A0 and be advised if anyone, contrary t=
o advice, is building libpng 1.6<br>=C2=A0=C2=A0=C2=A0 on a 16-bit system. =
It also adds back various switch default clauses<br>=C2=A0=C2=A0=C2=A0 for =
GCC; GCC errors out if they are not present (with an appropriately<br>=C2=
=A0=C2=A0=C2=A0 high level of warnings).<br>=C2=A0 Safely convert num_bytes=
 to a png_byte in png_set_sig_bytes() (Robert<br>=C2=A0=C2=A0=C2=A0 Seacord=
).<br>=C2=A0 Fixed the recently reported 1&#39;s complement security issue =
by replacing<br>=C2=A0=C2=A0=C2=A0 the value that is illegal in the PNG spe=
c, in both signed and unsigned<br>=C2=A0=C2=A0=C2=A0 values, with 0. Illega=
l unsigned values (anything greater than or equal<br>=C2=A0=C2=A0=C2=A0 to=
=C2=A0 0x80000000) can still pass through, but since these are not illegal<=
br>=C2=A0=C2=A0=C2=A0 in ANSI-C (unlike 0x80000000 in the signed case) the =
checking that<br>=C2=A0=C2=A0=C2=A0 occurs later can catch them (John Bowle=
r).<br>=C2=A0 Fixed png_save_int_32 when int is not 2&#39;s complement (Joh=
n Bowler).<br>=C2=A0 Updated libpng16 with all the recent test changes from=
 libpng17,<br>=C2=A0=C2=A0=C2=A0 including changes to pngvalid.c to ensure =
that the original,<br>=C2=A0=C2=A0=C2=A0 distributed, version of contrib/vi=
supng/cexcept.h can be used<br>=C2=A0=C2=A0=C2=A0 (John Bowler).<br>=C2=A0 =
pngvalid contains the correction to the use of SAVE/STORE_<br>=C2=A0=C2=A0=
=C2=A0 UNKNOWN_CHUNKS; a bug revealed by changes in libpng 1.7. More<br>=C2=
=A0=C2=A0=C2=A0 tests contain the --strict option to detect warnings and th=
e<br>=C2=A0=C2=A0=C2=A0 pngvalid-standard test has been corrected so that i=
t does not<br>=C2=A0=C2=A0=C2=A0 turn on progressive-read. There is a separ=
ate test which does<br>=C2=A0=C2=A0=C2=A0 that. (John Bowler)<br>=C2=A0 Als=
o made some signed/unsigned fixes.<br>=C2=A0 Make pngstest error limits ver=
sion specific. Splitting the machine<br>=C2=A0=C2=A0=C2=A0 generated error =
structs out to a file allows the values to be updated<br>=C2=A0=C2=A0=C2=A0=
 without changing pngstest.c itself. Since libpng 1.6 and 1.7 have<br>=C2=
=A0=C2=A0=C2=A0 slightly different error limits this simplifies maintenance=
. The<br>=C2=A0=C2=A0=C2=A0 makepngs.sh script has also been updated to mor=
e accurately reflect<br>=C2=A0=C2=A0=C2=A0 current problems in libpng 1.7 (=
John Bowler).<br>=C2=A0 Incorporated new test PNG files into make check.=C2=
=A0 tests/pngstest-*<br>=C2=A0=C2=A0=C2=A0 are changed so that the new test=
 files are divided into 8 groups by<br>=C2=A0=C2=A0=C2=A0 gamma and alpha c=
hannel.=C2=A0 These tests have considerably better code<br>=C2=A0=C2=A0=C2=
=A0 and pixel-value coverage than contrib/pngsuite; however,coverage is<br>=
=C2=A0=C2=A0=C2=A0 still incomplete (John Bowler).<br>=C2=A0 Removed the &#=
39;--strict&#39; in 1.6 because of the double-gamma-correction<br>=C2=A0=C2=
=A0=C2=A0 warning, updated pngstest-errors.h for the errors detected with t=
he<br>=C2=A0=C2=A0=C2=A0 new contrib/testspngs PNG test files (John Bowler)=
.<br>=C2=A0 Worked around rgb-to-gray issues in libpng 1.6.=C2=A0 The previ=
ous<br>=C2=A0=C2=A0=C2=A0 attempts to ignore the errors in the code aren&#3=
9;t quite enough to<br>=C2=A0=C2=A0=C2=A0 deal with the &#39;channel select=
ion&#39; encoding added to libpng 1.7; abort.<br>=C2=A0 Fixed &#39;pow&#39;=
 macros in pngvalid.c. It is legal for &#39;pow&#39; to be a<br>=C2=A0=C2=
=A0=C2=A0 macro, therefore the argument list cannot contain preprocessing<b=
r>=C2=A0=C2=A0=C2=A0 directives.=C2=A0 Make sure pow is a function where th=
is happens. This is<br>=C2=A0=C2=A0=C2=A0 a minimal safe fix, the issue onl=
y arises in non-performance-critical<br>=C2=A0=C2=A0=C2=A0 code (bug report=
 by Curtis Leach, fix by John Bowler).<br>=C2=A0 Added sPLT support to pngt=
est.c<br>=C2=A0 Prevent setting or writing over-length PLTE chunk (Cosmin T=
ruta).<br>=C2=A0 Silently truncate over-length PLTE chunk while reading.<br=
>=C2=A0 Libpng incorrectly calculated the output rowbytes when the applicat=
ion<br>=C2=A0=C2=A0=C2=A0 decreased either the number of channels or the bi=
t depth (or both) in<br>=C2=A0=C2=A0=C2=A0 a user transform.=C2=A0 This was=
 safe; libpng overallocated buffer space<br>=C2=A0=C2=A0 (potentially by qu=
ite a lot; up to 4 times the amount required) but,<br>=C2=A0=C2=A0 from 1.5=
.4 on, resulted in a png_error (John Bowler).<br>=C2=A0 Fixed some inconseq=
uential cut-and-paste typos in png_set_cHRM_XYZ_fixed().<br>=C2=A0 Clarifie=
d COPYRIGHT information to state explicitly that versions<br>=C2=A0=C2=A0=
=C2=A0 are derived from previous versions.<br>=C2=A0 Removed much of the lo=
ng list of previous versions from png.h and<br>=C2=A0=C2=A0=C2=A0 libpng.3.=
<br><br></div>

--94eb2c030c10e2b45c05245a271f--


--===============6683449711063401853==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

------------------------------------------------------------------------------

--===============6683449711063401853==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
png-mng-announce mailing list
png-mng-announce-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
https://lists.sourceforge.net/lists/listinfo/png-mng-announce

--===============6683449711063401853==--