9f1b66583422a4e466b5cbcaf3700047c6117301
[reactos.git] / reactos / dll / 3rdparty / libpng / docs / ANNOUNCE
1 Libpng 1.6.19 - November 12, 2015
2
3 This is a public release of libpng, intended for use in production codes.
4
5 Files available for download:
6
7 Source files with LF line endings (for Unix/Linux) and with a
8 "configure" script
9
10 libpng-1.6.19.tar.xz (LZMA-compressed, recommended)
11 libpng-1.6.19.tar.gz
12
13 Source files with CRLF line endings (for Windows), without the
14 "configure" script
15
16 lpng1619.7z (LZMA-compressed, recommended)
17 lpng1619.zip
18
19 Other information:
20
21 libpng-1.6.19-README.txt
22 libpng-1.6.19-LICENSE.txt
23 libpng-1.6.19-*.asc (armored detached GPG signatures)
24
25 Changes since the last public release (1.6.18):
26
27 Updated obsolete information about the simplified API macros in the
28 manual pages (Bug report by Arc Riley).
29 Avoid potentially dereferencing NULL info_ptr in png_info_init_3().
30 Rearranged png.h to put the major sections in the same order as
31 in libpng17.
32 Eliminated unused PNG_COST_SHIFT, PNG_WEIGHT_SHIFT, PNG_COST_FACTOR, and
33 PNG_WEIGHT_FACTOR macros.
34 Suppressed some warnings from the Borland C++ 5.5.1/5.82 compiler
35 (Bug report by Viktor Szakats). Several warnings remain and are
36 unavoidable, where we test for overflow.
37 Fixed potential leak of png_pixels in contrib/pngminus/pnm2png.c
38 Fixed uninitialized variable in contrib/gregbook/rpng2-x.c
39 Moved config.h.in~ from the "libpng_autotools_files" list to the
40 "libpng_autotools_extra" list in autogen.sh because it was causing a
41 false positive for missing files (bug report by Robert C. Seacord).
42 Removed unreachable "break" statements in png.c, pngread.c, and pngrtran.c
43 to suppress clang warnings (Bug report by Viktor Szakats).
44 Fixed some bad links in the man page.
45 Changed "n bit" to "n-bit" in comments.
46 Added signed/unsigned 16-bit safety net. This removes the dubious
47 0x8000 flag definitions on 16-bit systems. They aren't supported
48 yet the defs *probably* work, however it seems much safer to do this
49 and be advised if anyone, contrary to advice, is building libpng 1.6
50 on a 16-bit system. It also adds back various switch default clauses
51 for GCC; GCC errors out if they are not present (with an appropriately
52 high level of warnings).
53 Safely convert num_bytes to a png_byte in png_set_sig_bytes() (Robert
54 Seacord).
55 Fixed the recently reported 1's complement security issue by replacing
56 the value that is illegal in the PNG spec, in both signed and unsigned
57 values, with 0. Illegal unsigned values (anything greater than or equal
58 to 0x80000000) can still pass through, but since these are not illegal
59 in ANSI-C (unlike 0x80000000 in the signed case) the checking that
60 occurs later can catch them (John Bowler).
61 Fixed png_save_int_32 when int is not 2's complement (John Bowler).
62 Updated libpng16 with all the recent test changes from libpng17,
63 including changes to pngvalid.c to ensure that the original,
64 distributed, version of contrib/visupng/cexcept.h can be used
65 (John Bowler).
66 pngvalid contains the correction to the use of SAVE/STORE_
67 UNKNOWN_CHUNKS; a bug revealed by changes in libpng 1.7. More
68 tests contain the --strict option to detect warnings and the
69 pngvalid-standard test has been corrected so that it does not
70 turn on progressive-read. There is a separate test which does
71 that. (John Bowler)
72 Also made some signed/unsigned fixes.
73 Make pngstest error limits version specific. Splitting the machine
74 generated error structs out to a file allows the values to be updated
75 without changing pngstest.c itself. Since libpng 1.6 and 1.7 have
76 slightly different error limits this simplifies maintenance. The
77 makepngs.sh script has also been updated to more accurately reflect
78 current problems in libpng 1.7 (John Bowler).
79 Incorporated new test PNG files into make check. tests/pngstest-*
80 are changed so that the new test files are divided into 8 groups by
81 gamma and alpha channel. These tests have considerably better code
82 and pixel-value coverage than contrib/pngsuite; however,coverage is
83 still incomplete (John Bowler).
84 Removed the '--strict' in 1.6 because of the double-gamma-correction
85 warning, updated pngstest-errors.h for the errors detected with the
86 new contrib/testspngs PNG test files (John Bowler).
87 Worked around rgb-to-gray issues in libpng 1.6. The previous
88 attempts to ignore the errors in the code aren't quite enough to
89 deal with the 'channel selection' encoding added to libpng 1.7; abort.
90 Fixed 'pow' macros in pngvalid.c. It is legal for 'pow' to be a
91 macro, therefore the argument list cannot contain preprocessing
92 directives. Make sure pow is a function where this happens. This is
93 a minimal safe fix, the issue only arises in non-performance-critical
94 code (bug report by Curtis Leach, fix by John Bowler).
95 Added sPLT support to pngtest.c
96 Prevent setting or writing over-length PLTE chunk (Cosmin Truta).
97 Silently truncate over-length PLTE chunk while reading.
98 Libpng incorrectly calculated the output rowbytes when the application
99 decreased either the number of channels or the bit depth (or both) in
100 a user transform. This was safe; libpng overallocated buffer space
101 (potentially by quite a lot; up to 4 times the amount required) but,
102 from 1.5.4 on, resulted in a png_error (John Bowler).
103 Fixed some inconsequential cut-and-paste typos in png_set_cHRM_XYZ_fixed().
104 Clarified COPYRIGHT information to state explicitly that versions
105 are derived from previous versions.
106 Removed much of the long list of previous versions from png.h and
107 libpng.3.
108
109 Send comments/corrections/commendations to png-mng-implement at lists.sf.net
110 (subscription required; visit
111 https://lists.sourceforge.net/lists/listinfo/png-mng-implement
112 to subscribe)
113 or to glennrp at users.sourceforge.net
114
115 Glenn R-P