libpng-1.5.4, 1.4.8, 1.2.45, and 1.0.55 are available

Glenn Randers-Pehrson <[email protected]> Thu, 7 Jul 2011 08:53:23 -0400
Newsgroups gmane.comp.graphics.png.announce
Message-ID <CA+PdXcs3H_BaDO88mgX_gjoh9b32eynYYFpLbE853+K-8ODknA__6374.95908090404$1310043241$gmane$org@mail.gmail.com>
--===============2306392054409995523==
Content-Type: multipart/alternative; boundary=000e0cdfd648c7310904a77a3344

--000e0cdfd648c7310904a77a3344
Content-Type: text/plain; charset=ISO-8859-1

libpng-1.5.4, 1.4.8, 1.2.45, and 1.0.55 are available from
ftp://ftp.simplesystems.org/pub/png/src
and from
http://libpng.sf.net

There are no changes from the RC01's.  All of them
fix CVE-2011-2501 and some other minor security problems.

version 1.2.45 and 1.0.55  [July 7, 2011]

  Fixed uninitialized memory read in png_format_buffer() (Bug
    report by Frank Busse, related to CVE-2004-0421).
  Pass "" instead of '\0' to png_default_error() in png_err().  This mistake
    was introduced in libpng-1.2.20beta01.
  Check for up->location !PNG_AFTER_IDAT when writing unknown chunks
    before IDAT.
  Ported bugfix in pngrtran.c from 1.5.3: when expanding a paletted image,
    always expand to RGBA if transparency is present.
  Check for integer overflow in png_set_rgb_to_gray().
  Check for sCAL chunk too short.

libpng-1.4.8 changes since the last public release (1.4.7):

  Undef "_ALL_SOURCE" for AIX, to prevent "jmpbuf" from being redefined.
  Copied png_debug macros from pngpriv.h into pngtest.c and removed
    "#include pngpriv.h" from pngtest.c, to avoid setting a bad example.
  Pass "" instead of '\0' to png_default_error() in png_err().  This mistake
    was introduced in libpng-1.2.20beta01.
  Check for up->location !PNG_AFTER_IDAT when writing unknown chunks
    before IDAT.
  Ported bugfix in pngrtran.c from 1.5.3: when expanding a paletted image,
    always expand to RGBA if transparency is present.
  Ported bugfix in pngrtran.c from 1.5.3: Ensure coefficients are OK for
    png_rgb_to_gray_fixed(); check for integer overflow in
    png_set_rgb_to_gray().
  Fixed uninitialized memory read in png_format_buffer() (Bug report by
    Frank Busse, related to CVE-2004-0421).
  Fixed error in "ACCURATE" 16-to-8 scaling (John Bowler).
  Check for sCAL chunk too short.

libpng-1.5.4 changes since the last public release (1.5.2):

  Re-initialize the zlib compressor before compressing non-IDAT chunks.
  Added API functions to set parameters for zlib compression of non-IDAT
    chunks.
  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.6).
  Optimize the zlib CMF byte in non-IDAT compressed chunks
  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.2 (bug report by Andrew Church).
  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 clash with the png_jmpbuf macro on some platforms.
  Added appropriate feature test macros 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.  _ISOC99_SOURCE is
    defined in pngpriv.h to obtain the ISO C99 snprintf definition, when
    available.
  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.
  Added PNG_WRITE_OPTIMIZE_CMF_SUPPORTED macro to make the zlib "CMF" byte
    optimization configureable.
  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.
  Removed the -D_ALL_SOURCE from definitions for AIX in CMakeLists.txt
  Implemented premultiplied alpha support: png_set_alpha_mode API
  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.
  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.
  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!
  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.
  Fixed uninitialized memory read in png_format_buffer() (Bug report by
    Frank Busse, related to CVE-2004-0421).
  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.
  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.
  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.
  Added png_set_scale_16() API, to match inaccurate results from previous
    libpng versions, configurable with PNG_READ_SCALE_16_TO_8_SUPPORTED.
  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.
  Added PNG_TRANSFORM_SCALE_16 to the high-level read transforms.
  If PNG_READ_16_TO_8_ACCURATE_SCALE is not enabled, png_set_scale_16()
    and png_do_scale_16_to_8() aren't built.
  Revised contrib/visupng, gregbook, and pngminim to demonstrate
scale_16_to_8
  Fixed pngvalid, simplified macros, added checking for 0 in sCAL.
    The ACCURATE scale macro is no longer defined in libpng-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.
  Define PNG_ALLOCATED to "restrict" only if MSC_VER >= 1400.

--000e0cdfd648c7310904a77a3344
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

libpng-1.5.4, 1.4.8, 1.2.45, and 1.0.55 are available from<br><a href=3D"ft=
p://ftp.simplesystems.org/pub/png/src">ftp://ftp.simplesystems.org/pub/png/=
src</a><br>and from<br><a href=3D"http://libpng.sf.net">http://libpng.sf.ne=
t</a><br>
<br>There are no changes from the RC01&#39;s.=A0 All of them<br>fix CVE-201=
1-2501 and some other minor security problems.<br><br>
version 1.2.45 and 1.0.55=A0 [July 7, 2011]<br>
<br>
=A0 Fixed uninitialized memory read in png_format_buffer() (Bug<br>
=A0=A0=A0 report by Frank Busse, related to CVE-2004-0421).<br>
=A0 Pass &quot;&quot; instead of &#39;\0&#39; to png_default_error() in png=
_err().=A0 This mistake<br>
=A0=A0=A0 was introduced in libpng-1.2.20beta01.<br>
=A0 Check for up-&gt;location !PNG_AFTER_IDAT when writing unknown chunks<b=
r>
=A0=A0=A0 before IDAT.<br>
=A0 Ported bugfix in pngrtran.c from 1.5.3: when expanding a paletted image=
,<br>
=A0=A0=A0 always expand to RGBA if transparency is present.<br>
=A0 Check for integer overflow in png_set_rgb_to_gray().<br>
=A0 Check for sCAL chunk too short.<br>
<br>libpng-1.4.8 changes since the last public release (1.4.7):<br><br>=A0 =
Undef &quot;_ALL_SOURCE&quot; for AIX, to prevent &quot;jmpbuf&quot; from b=
eing redefined.<br>=A0 Copied png_debug macros from pngpriv.h into pngtest.=
c and removed<br>
=A0=A0=A0 &quot;#include pngpriv.h&quot; from pngtest.c, to avoid setting a=
 bad example.<br>=A0 Pass &quot;&quot; instead of &#39;\0&#39; to png_defau=
lt_error() in png_err().=A0 This mistake<br>=A0=A0=A0 was introduced in lib=
png-1.2.20beta01.<br>
=A0 Check for up-&gt;location !PNG_AFTER_IDAT when writing unknown chunks<b=
r>=A0=A0=A0 before IDAT.<br>=A0 Ported bugfix in pngrtran.c from 1.5.3: whe=
n expanding a paletted image,<br>=A0=A0=A0 always expand to RGBA if transpa=
rency is present.<br>
=A0 Ported bugfix in pngrtran.c from 1.5.3: Ensure coefficients are OK for<=
br>=A0=A0=A0 png_rgb_to_gray_fixed(); check for integer overflow in<br>=A0=
=A0=A0 png_set_rgb_to_gray().<br>=A0 Fixed uninitialized memory read in png=
_format_buffer() (Bug report by<br>
=A0=A0=A0 Frank Busse, related to CVE-2004-0421).<br>=A0 Fixed error in &qu=
ot;ACCURATE&quot; 16-to-8 scaling (John Bowler).<br>=A0 Check for sCAL chun=
k too short.<br><br>libpng-1.5.4 changes since the last public release (1.5=
.2):<br>
<br>=A0 Re-initialize the zlib compressor before compressing non-IDAT chunk=
s.<br>=A0 Added API functions to set parameters for zlib compression of non=
-IDAT<br>=A0=A0=A0 chunks.<br>=A0 Updated scripts/symbols.def with new API =
functions.<br>
=A0 Only compile the new zlib re-initializing code when text or iCCP is<br>=
=A0=A0=A0 supported, using PNG_WRITE_COMPRESSED_TEXT_SUPPORTED macro.<br>=
=A0 Improved the optimization of the zlib CMF byte (see libpng-1.2.6).<br>=
=A0 Optimize the zlib CMF byte in non-IDAT compressed chunks<br>
=A0 Fixed gcc -ansi -pedantic compile. A strict ANSI system does not have<b=
r>=A0=A0=A0 snprintf, and the &quot;__STRICT_ANSI__&quot; detects that cond=
ition more reliably<br>=A0=A0=A0 than __STDC__ (John Bowler).<br>=A0 Remove=
d the PNG_PTR_NORETURN attribute because it too dangerous. It tells<br>
=A0=A0=A0 the compiler that a user supplied callback (the error handler) do=
es not<br>=A0=A0=A0 return, yet there is no guarantee in practice that the =
application code<br>=A0=A0=A0 will correctly implement the error handler be=
cause the compiler only<br>
=A0=A0=A0 issues a warning if there is a mistake (John Bowler).<br>=A0 Remo=
ved the no-longer-used PNG_DEPSTRUCT macro.<br>=A0 Updated the zlib version=
 to 1.2.5 in the VStudio project.<br>=A0 Fixed 64-bit builds where png_uint=
_32 is smaller than png_size_t in<br>
=A0=A0=A0 pngwutil.c (John Bowler).<br>=A0 Fixed bug with stripping the fil=
ler or alpha channel when writing, that<br>=A0=A0=A0 was introduced in libp=
ng-1.5.2 (bug report by Andrew Church).<br>=A0 Updated pngtest.png with the=
 new zlib CMF optimization.<br>
=A0 Cleaned up conditional compilation code and of background/gamma handlin=
g<br>=A0=A0=A0 Internal changes only except a new option to avoid compiling=
 the<br>=A0=A0=A0 png_build_grayscale_palette API (which is not used at all=
 internally.)<br>
=A0=A0=A0 The main change is to move the transform tests (READ_TRANSFORMS,<=
br>=A0=A0=A0 WRITE_TRANSFORMS) up one level to the caller of the APIs.=A0 T=
his avoids<br>=A0=A0=A0 calls to spurious functions if all transforms are d=
isabled and slightly<br>
=A0=A0=A0 simplifies those functions.=A0 Pngvalid modified to handle this.<=
br>=A0=A0=A0 A minor change is to stop the strip_16 and expand_16 interface=
s from<br>=A0=A0=A0 disabling each other; this allows the future alpha prem=
ultiplication<br>
=A0=A0=A0 code to use 16-bit intermediate values while still producing 8-bi=
t output.<br>=A0=A0=A0 png_do_background and png_do_gamma have been simplif=
ied to take a single<br>=A0=A0=A0 pointer to the png_struct rather than poi=
nters to every item required<br>
=A0=A0=A0 from the png_struct. This makes no practical difference to the in=
ternal<br>=A0=A0=A0 code.<br>=A0 A serious bug in the pngvalid internal rou=
tine &#39;standard_display_init&#39; has<br>=A0=A0=A0 been fixed - this fai=
led to initialize the red channel and accidentally<br>
=A0=A0=A0 initialized the alpha channel twice.<br>=A0 Changed png_struct jm=
p_buf member name from png_jmpbuf to tmp_jmpbuf to<br>=A0=A0=A0 avoid a cla=
sh with the png_jmpbuf macro on some platforms.<br>=A0 Added appropriate fe=
ature test macros to ensure libpng sees the correct API<br>
=A0=A0 _POSIX_SOURCE is defined in pngpriv.h, pngtest.c and pngvalid.c to e=
nsure<br>=A0=A0=A0 that POSIX conformant systems disable non-POSIX APIs.=A0=
 _ISOC99_SOURCE is<br>=A0=A0=A0 defined in pngpriv.h to obtain the ISO C99 =
snprintf definition, when<br>
=A0=A0=A0 available.<br>=A0 Removed png_snprintf and added formatted warnin=
g messages.=A0 This change adds<br>=A0=A0=A0 internal APIs to allow png_war=
ning messages to have parameters without<br>=A0=A0=A0 requiring the host OS=
 to implement snprintf.=A0 As a side effect the<br>
=A0=A0=A0 dependency of the tIME-supporting RFC1132 code on stdio is remove=
d and<br>=A0=A0=A0 PNG_NO_WARNINGS does actually work now.<br>=A0 Added PNG=
_WRITE_OPTIMIZE_CMF_SUPPORTED macro to make the zlib &quot;CMF&quot; byte<b=
r>=A0=A0=A0 optimization configureable.<br>
=A0 Internal functions were added to claim/release the z_stream and, hopefu=
lly,<br>=A0=A0=A0 make the code more robust.=A0 Also deflateEnd checking is=
 added - previously<br>=A0=A0=A0 libpng would ignore an error at the end of=
 the stream.<br>
=A0 Removed the -D_ALL_SOURCE from definitions for AIX in CMakeLists.txt<br=
>=A0 Implemented premultiplied alpha support: png_set_alpha_mode API<br>=A0=
 Added expand_16 support to the high level interface.<br>=A0 Added named va=
lue and &#39;flag&#39; gamma support to png_set_gamma.=A0 Made a minor<br>
=A0=A0=A0 change from the previous (unreleased) ABI/API to hide the exact v=
alue used<br>=A0=A0=A0 for Macs - it&#39;s not a good idea to embed this in=
 the ABI!<br>=A0 Moved macro definitions for PNG_HAVE_IHDR, PNG_HAVE_PLTE, =
and PNG_AFTER_IDAT<br>
=A0=A0=A0 from pngpriv.h to png.h because they must be visible to applicati=
ons<br>=A0=A0=A0 that call png_set_unknown_chunks().<br>=A0 Check for up-&g=
t;location !PNG_AFTER_IDAT when writing unknown chunks<br>=A0=A0=A0 before =
IDAT.<br>=A0 Improved &quot;pngvalid --speed&quot; to exclude more of pngva=
lid from the time.<br>
=A0 Documented png_set_alpha_mode(), other changes in libpng.3/libpng-manua=
l.txt<br>=A0 The cHRM chunk now sets the defaults for png_set_rgb_to_gray()=
 (when negative<br>=A0=A0=A0 parameters are supplied by the caller), while =
in the absence of cHRM<br>
=A0=A0=A0 sRGB/Rec 709 values are still used.<br>=A0 The bKGD chunk no long=
er overwrites the background value set by<br>=A0=A0=A0 png_set_background()=
, allowing the latter to be used before the file<br>=A0=A0=A0 header is rea=
d. It never performed any useful function to override<br>
=A0=A0=A0 the default anyway.<br>=A0 Added memory overwrite and palette ima=
ge checks to pngvalid.c<br>=A0=A0=A0 Previously palette image code was poor=
ly checked. Since the transformation<br>=A0=A0=A0 code has a special palett=
e path in most cases this was a severe weakness.<br>
=A0 Minor cleanup and some extra checking in pngrutil.c and pngrtran.c. Whe=
n<br>=A0=A0=A0 expanding an indexed image, always expand to RGBA if transpa=
rency is<br>=A0=A0=A0 present.<br>=A0 Reversed earlier 1.5.3 change of tran=
sformation order; move png_expand_16<br>
=A0=A0=A0 back where it was.=A0 The change doesn&#39;t work because it requ=
ires 16-bit<br>=A0=A0=A0 gamma tables when the code only generates 8-bit on=
es.=A0 This fails<br>=A0=A0=A0 silently; the libpng code just doesn&#39;t d=
o any gamma correction.=A0 Moving<br>
=A0=A0=A0 the tests back leaves the old, inaccurate, 8-bit gamma calculatio=
ns, but<br>=A0=A0=A0 these are clearly better than none!<br>=A0 png_set_bac=
kground() and png_expand_16() did not work together correctly.<br>=A0=A0=A0=
 This problem is present in 1.5.2; if png_set_background is called with<br>
=A0=A0=A0 need_expand false and the matching 16 bit color libpng erroneousl=
y just<br>=A0=A0=A0 treats it as an 8-bit color because of where png_do_exp=
and_16 is in the<br>=A0=A0=A0 transform list.=A0 This simple fix reduces th=
e supplied colour to 8-bits,<br>
=A0=A0=A0 so it gets smashed, but this is better than the current behavior.=
<br>=A0 Added tests for expand16, more fixes for palette image tests to png=
valid.<br>=A0=A0=A0 Corrects the code for palette image tests and disables =
attempts to<br>
=A0=A0=A0 validate palette colors.<br>=A0 Fixed uninitialized memory read i=
n png_format_buffer() (Bug report by<br>=A0=A0=A0 Frank Busse, related to C=
VE-2004-0421).<br>=A0 Fixed png_handle_sCAL which is broken in 1.5; added s=
CAL to pngtest.png<br>
=A0 Revised documentation about png_set_user_limits() to say that it also a=
ffects<br>=A0=A0=A0 png writing.<br>=A0 Revised handling of png_set_user_li=
mits() so that it can increase the<br>=A0=A0=A0 limit beyond the PNG_USER_W=
IDTH|HEIGHT_MAX; previously it could only<br>
=A0=A0=A0 reduce it.<br>=A0 Make the 16-to-8 scaling accurate. Dividing by =
256 with no rounding is<br>=A0=A0=A0 wrong (high by one) 25% of the time. D=
ividing by 257 with rounding is<br>=A0=A0=A0 wrong in 128 out of 65536 case=
s. Getting the right answer all the time<br>
=A0=A0=A0 without division is easy.<br>=A0 Added &quot;_SUPPORTED&quot; to =
the PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION macro.<br>=A0 Added projects/owatc=
om, an IDE project for OpenWatcom to replace<br>=A0=A0=A0 scripts/makefile.=
watcom.=A0 This project works with OpenWatcom 1.9. The<br>
=A0=A0=A0 IDE autogenerates appropriate makefiles (<a href=3D"http://libpng=
.mk">libpng.mk</a>) for batch processing.<br>=A0=A0=A0 The project is confi=
gurable, unlike the Visual Studio project, so long<br>=A0=A0=A0 as the deve=
loper has an awk.<br>
=A0 Changed png_set_gAMA to limit the gamma value range so that the inverse=
<br>=A0=A0=A0 of the stored value cannot overflow the fixed point represent=
ation,<br>=A0=A0=A0 and changed other things OpenWatcom warns about.<br>=A0=
 Revised pngvalid.c to test PNG_ALPHA_MODE_SUPPORTED correctly. This allows=
<br>
=A0=A0=A0 pngvalid to build when ALPHA_MODE is not supported, which is requ=
ired if<br>=A0=A0=A0 it is to build on libpng 1.4.<br>=A0 Removed string/me=
mory macros that are no longer used and are not<br>=A0=A0=A0 necessarily fu=
lly supportable, particularly png_strncpy and png_snprintf.<br>
=A0 Added log option to pngvalid.c and attempted to improve gamma messages.=
<br>=A0 People found the presence of a beta release following an rc release=
<br>=A0=A0=A0 to be confusing; therefore we bump the version to libpng-1.5.=
4beta01<br>
=A0=A0=A0 and there will be no libpng-1.5.3 release.<br>=A0 Moved definitio=
ns of PNG_HAVE_IHDR, PNG_AFTER_IDAT, and PNG_HAVE_PLTE<br>=A0=A0=A0 outside=
 of an unknown-chunk block in png.h because they are also<br>=A0=A0=A0 need=
ed for other uses.<br>
=A0 Added png_set_scale_16() API, to match inaccurate results from previous=
<br>=A0=A0=A0 libpng versions, configurable with PNG_READ_SCALE_16_TO_8_SUP=
PORTED.<br>=A0 Fixed a problem in png_do_expand_palette() exposed by optimi=
zation in<br>
=A0=A0=A0 1.5.3beta06<br>=A0 Also removed a spurious and confusing &quot;tr=
ans&quot; member (&quot;trans&quot;) from png_info.<br>=A0 The palette expa=
nd optimization prevented expansion to an intermediate RGBA<br>=A0=A0=A0 fo=
rm if tRNS was present but alpha was marked to be stripped; this exposed<br=
>
=A0=A0=A0 a check for tRNS in png_do_expand_palette() which is inconsistent=
 with the<br>=A0=A0=A0 code elsewhere in libpng.<br>=A0 Added PNG_TRANSFORM=
_SCALE_16 to the high-level read transforms.<br>=A0 If PNG_READ_16_TO_8_ACC=
URATE_SCALE is not enabled, png_set_scale_16()<br>
=A0=A0=A0 and png_do_scale_16_to_8() aren&#39;t built.<br>=A0 Revised contr=
ib/visupng, gregbook, and pngminim to demonstrate scale_16_to_8<br>=A0 Fixe=
d pngvalid, simplified macros, added checking for 0 in sCAL.<br>=A0=A0=A0 T=
he ACCURATE scale macro is no longer defined in libpng-1.5 - call the<br>
=A0=A0=A0 png_scale_16_to_8 API.=A0 Made sure that PNG_READ_16_TO_8 is stil=
l defined<br>=A0=A0=A0 if the png_strip_16_to_8 API is present.=A0 png_chec=
k_fp_number now<br>=A0=A0=A0 maintains some state so that positive, negativ=
e and zero values are<br>
=A0=A0=A0 identified.=A0 sCAL uses these to be strictly spec conformant.<br=
>=A0 Define PNG_ALLOCATED to &quot;restrict&quot; only if MSC_VER &gt;=3D 1=
400.<br><br><br>

--000e0cdfd648c7310904a77a3344--


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

------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security 
threats, fraudulent activity, and more. Splunk takes this data and makes 
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2d-c2
--===============2306392054409995523==
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

--===============2306392054409995523==--