xref: /freebsd/contrib/expat/Changes (revision dc58b3fca5e7a7bb1e9aa640667944d0fe0601cd)
10a48773fSEric van GyzenNOTE: We are looking for help with a few things:
20a48773fSEric van Gyzen      https://github.com/libexpat/libexpat/labels/help%20wanted
30a48773fSEric van Gyzen      If you can help, please get in touch.  Thanks!
40a48773fSEric van Gyzen
5*dc58b3fcSXin LIRelease 2.5.0 Tue October 25 2022
6*dc58b3fcSXin LI        Security fixes:
7*dc58b3fcSXin LI  #616 #649 #650  CVE-2022-43680 -- Fix heap use-after-free after overeager
8*dc58b3fcSXin LI                    destruction of a shared DTD in function
9*dc58b3fcSXin LI                    XML_ExternalEntityParserCreate in out-of-memory situations.
10*dc58b3fcSXin LI                    Expected impact is denial of service or potentially
11*dc58b3fcSXin LI                    arbitrary code execution.
12*dc58b3fcSXin LI
13*dc58b3fcSXin LI        Bug fixes:
14*dc58b3fcSXin LI       #612 #645  Fix curruption from undefined entities
15*dc58b3fcSXin LI       #613 #654  Fix case when parsing was suspended while processing nested
16*dc58b3fcSXin LI                    entities
17*dc58b3fcSXin LI  #616 #652 #653  Stop leaking opening tag bindings after a closing tag
18*dc58b3fcSXin LI                    mismatch error where a parser is reset through
19*dc58b3fcSXin LI                    XML_ParserReset and then reused to parse
20*dc58b3fcSXin LI            #656  CMake: Fix generation of pkg-config file
21*dc58b3fcSXin LI            #658  MinGW|CMake: Fix static library name
22*dc58b3fcSXin LI
23*dc58b3fcSXin LI        Other changes:
24*dc58b3fcSXin LI            #663  Protect header expat_config.h from multiple inclusion
25*dc58b3fcSXin LI            #666  examples: Make use of XML_GetBuffer and be more
26*dc58b3fcSXin LI                    consistent across examples
27*dc58b3fcSXin LI            #648  Address compiler warnings
28*dc58b3fcSXin LI       #667 #668  Version info bumped from 9:9:8 to 9:10:8;
29*dc58b3fcSXin LI                    see https://verbump.de/ for what these numbers do
30*dc58b3fcSXin LI
31*dc58b3fcSXin LI        Special thanks to:
32*dc58b3fcSXin LI            Jann Horn
33*dc58b3fcSXin LI            Mark Brand
34*dc58b3fcSXin LI            Osyotr
35*dc58b3fcSXin LI            Rhodri James
36*dc58b3fcSXin LI                 and
37*dc58b3fcSXin LI            Google Project Zero
38*dc58b3fcSXin LI
3971f0c44aSXin LIRelease 2.4.9 Tue September 20 2022
4071f0c44aSXin LI        Security fixes:
4171f0c44aSXin LI       #629 #640  CVE-2022-40674 -- Heap use-after-free vulnerability in
4271f0c44aSXin LI                    function doContent. Expected impact is denial of service
4371f0c44aSXin LI                    or potentially arbitrary code execution.
4471f0c44aSXin LI
4571f0c44aSXin LI        Bug fixes:
4671f0c44aSXin LI            #634  MinGW: Fix mis-compilation for -D__USE_MINGW_ANSI_STDIO=0
4771f0c44aSXin LI            #614  docs: Fix documentation on effect of switch XML_DTD on
4871f0c44aSXin LI                    symbol visibility in doc/reference.html
4971f0c44aSXin LI
5071f0c44aSXin LI        Other changes:
5171f0c44aSXin LI            #638  MinGW: Make fix-xmltest-log.sh drop more Wine bug output
5271f0c44aSXin LI       #596 #625  Autotools: Sync CMake templates with CMake 3.22
5371f0c44aSXin LI            #608  CMake: Migrate from use of CMAKE_*_POSTFIX to
5471f0c44aSXin LI                    dedicated variables EXPAT_*_POSTFIX to stop affecting
5571f0c44aSXin LI                    other projects
5671f0c44aSXin LI       #597 #599  Windows|CMake: Add missing -DXML_STATIC to test runners
5771f0c44aSXin LI                    and fuzzers
5871f0c44aSXin LI       #512 #621  Windows|CMake: Render .def file from a template to fix
5971f0c44aSXin LI                    linking with -DEXPAT_DTD=OFF and/or -DEXPAT_ATTR_INFO=ON
6071f0c44aSXin LI       #611 #621  MinGW|CMake: Apply MSVC .def file when linking
6171f0c44aSXin LI       #622 #624  MinGW|CMake: Sync library name with GNU Autotools,
6271f0c44aSXin LI                    i.e. produce libexpat-1.dll rather than libexpat.dll
6371f0c44aSXin LI                    by default.  Filename libexpat.dll.a is unaffected.
6471f0c44aSXin LI            #632  MinGW|CMake: Set missing variable CMAKE_RC_COMPILER in
6571f0c44aSXin LI                    toolchain file "cmake/mingw-toolchain.cmake" to avoid
6671f0c44aSXin LI                    error "windres: Command not found" on e.g. Ubuntu 20.04
6771f0c44aSXin LI       #597 #627  CMake: Unify inconsistent use of set() and option() in
6871f0c44aSXin LI                    context of public build time options to take need for
6971f0c44aSXin LI                    set(.. FORCE) in projects using Expat by means of
7071f0c44aSXin LI                    add_subdirectory(..) off Expat's users' shoulders
7171f0c44aSXin LI       #626 #641  Stop exporting API symbols when building a static library
7271f0c44aSXin LI            #644  Resolve use of deprecated "fgrep" by "grep -F"
7371f0c44aSXin LI            #620  CMake: Make documentation on variables a bit more consistent
7471f0c44aSXin LI            #636  CMake: Drop leading whitespace from a #cmakedefine line in
7571f0c44aSXin LI                    file expat_config.h.cmake
7671f0c44aSXin LI            #594  xmlwf: Fix harmless variable mix-up in function nsattcmp
7771f0c44aSXin LI  #592 #593 #610  Address Cppcheck warnings
7871f0c44aSXin LI            #643  Address Clang 15 compiler warnings
7971f0c44aSXin LI       #642 #644  Version info bumped from 9:8:8 to 9:9:8;
8071f0c44aSXin LI                    see https://verbump.de/ for what these numbers do
8171f0c44aSXin LI
8271f0c44aSXin LI        Infrastructure:
8371f0c44aSXin LI       #597 #598  CI: Windows: Start covering MSVC 2022
8471f0c44aSXin LI            #619  CI: macOS: Migrate off deprecated macOS 10.15
8571f0c44aSXin LI            #632  CI: Linux: Make migration off deprecated Ubuntu 18.04 work
8671f0c44aSXin LI            #643  CI: Upgrade Clang from 14 to 15
8771f0c44aSXin LI            #637  apply-clang-format.sh: Add support for BSD find
8871f0c44aSXin LI            #633  coverage.sh: Exclude MinGW headers
8971f0c44aSXin LI            #635  coverage.sh: Fix name collision for -funsigned-char
9071f0c44aSXin LI
9171f0c44aSXin LI        Special thanks to:
9271f0c44aSXin LI            David Faure
9371f0c44aSXin LI            Felix Wilhelm
9471f0c44aSXin LI            Frank Bergmann
9571f0c44aSXin LI            Rhodri James
9671f0c44aSXin LI            Rosen Penev
9771f0c44aSXin LI            Thijs Schreijer
9871f0c44aSXin LI            Vincent Torri
9971f0c44aSXin LI                 and
10071f0c44aSXin LI            Google Project Zero
10171f0c44aSXin LI
10271f0c44aSXin LIRelease 2.4.8 Mon March 28 2022
10371f0c44aSXin LI        Other changes:
10471f0c44aSXin LI            #587  pkg-config: Move "-lm" to section "Libs.private"
10571f0c44aSXin LI            #587  CMake|MSVC: Fix pkg-config section "Libs"
10671f0c44aSXin LI        #55 #582  CMake|macOS: Start using linker arguments
10771f0c44aSXin LI                    "-compatibility_version <version>" and
10871f0c44aSXin LI                    "-current_version <version>" in a way compatible with
10971f0c44aSXin LI                    GNU Libtool
11071f0c44aSXin LI       #590 #591  Version info bumped from 9:7:8 to 9:8:8;
11171f0c44aSXin LI                    see https://verbump.de/ for what these numbers do
11271f0c44aSXin LI
11371f0c44aSXin LI        Infrastructure:
11471f0c44aSXin LI            #589  CI: Upgrade Clang from 13 to 14
11571f0c44aSXin LI
11671f0c44aSXin LI        Special thanks to:
11771f0c44aSXin LI            evpobr
11871f0c44aSXin LI            Kai Pastor
11971f0c44aSXin LI            Sam James
12071f0c44aSXin LI
1217ed8e142SXin LIRelease 2.4.7 Fri March 4 2022
1227ed8e142SXin LI        Bug fixes:
1237ed8e142SXin LI       #572 #577  Relax fix to CVE-2022-25236 (introduced with release 2.4.5)
1247ed8e142SXin LI                    with regard to all valid URI characters (RFC 3986),
1257ed8e142SXin LI                    i.e. the following set (excluding whitespace):
1267ed8e142SXin LI                    ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz
1277ed8e142SXin LI                    0123456789 % -._~ :/?#[]@ !$&'()*+,;=
1287ed8e142SXin LI
1297ed8e142SXin LI        Other changes:
1307ed8e142SXin LI  #555 #570 #581  CMake|Windows: Store Expat version in the DLL
1317ed8e142SXin LI            #577  Document consequences of namespace separator choices not just
1327ed8e142SXin LI                    in doc/reference.html but also in header <expat.h>
1337ed8e142SXin LI            #577  Document Expat's lack of validation of namespace URIs against
1347ed8e142SXin LI                    RFC 3986, and that the XML 1.0r4 specification doesn't
1357ed8e142SXin LI                    require Expat to validate namespace URIs, and that Expat
1367ed8e142SXin LI                    may do more in that regard in future releases.
1377ed8e142SXin LI                    If you find need for strict RFC 3986 URI validation on
1387ed8e142SXin LI                    application level today, https://uriparser.github.io/ may
1397ed8e142SXin LI                    be of interest.
1407ed8e142SXin LI            #579  Fix documentation of XML_EndDoctypeDeclHandler in <expat.h>
1417ed8e142SXin LI            #575  Document that a call to XML_FreeContentModel can be done at
1427ed8e142SXin LI                    a later time from outside the element declaration handler
1437ed8e142SXin LI            #574  Make hardcoded namespace URIs easier to find in code
1447ed8e142SXin LI            #573  Update documentation on use of XML_POOR_ENTOPY on Solaris
1457ed8e142SXin LI       #569 #571  tests: Resolve use of macros NAN and INFINITY for GNU G++
1467ed8e142SXin LI                    4.8.2 on Solaris.
1477ed8e142SXin LI       #578 #580  Version info bumped from 9:6:8 to 9:7:8;
1487ed8e142SXin LI                    see https://verbump.de/ for what these numbers do
1497ed8e142SXin LI
1507ed8e142SXin LI        Special thanks to:
1517ed8e142SXin LI            Jeffrey Walton
1527ed8e142SXin LI            Johnny Jazeix
1537ed8e142SXin LI            Thijs Schreijer
1547ed8e142SXin LI
155ac69e5d4SEric van GyzenRelease 2.4.6 Sun February 20 2022
156ac69e5d4SEric van Gyzen        Bug fixes:
157ac69e5d4SEric van Gyzen            #566  Fix a regression introduced by the fix for CVE-2022-25313
158ac69e5d4SEric van Gyzen                    in release 2.4.5 that affects applications that (1)
159ac69e5d4SEric van Gyzen                    call function XML_SetElementDeclHandler and (2) are
160ac69e5d4SEric van Gyzen                    parsing XML that contains nested element declarations
161ac69e5d4SEric van Gyzen                    (e.g. "<!ELEMENT junk ((bar|foo|xyz+), zebra*)>").
162ac69e5d4SEric van Gyzen
163ac69e5d4SEric van Gyzen        Other changes:
164ac69e5d4SEric van Gyzen       #567 #568  Version info bumped from 9:5:8 to 9:6:8;
165ac69e5d4SEric van Gyzen                    see https://verbump.de/ for what these numbers do
166ac69e5d4SEric van Gyzen
167ac69e5d4SEric van Gyzen        Special thanks to:
168ac69e5d4SEric van Gyzen            Matt Sergeant
169ac69e5d4SEric van Gyzen            Samanta Navarro
170ac69e5d4SEric van Gyzen            Sergei Trofimovich
171ac69e5d4SEric van Gyzen                 and
172ac69e5d4SEric van Gyzen            NixOS
173ac69e5d4SEric van Gyzen            Perl XML::Parser
174ac69e5d4SEric van Gyzen
175ac69e5d4SEric van GyzenRelease 2.4.5 Fri February 18 2022
176ac69e5d4SEric van Gyzen        Security fixes:
177ac69e5d4SEric van Gyzen            #562  CVE-2022-25235 -- Passing malformed 2- and 3-byte UTF-8
178ac69e5d4SEric van Gyzen                    sequences (e.g. from start tag names) to the XML
179ac69e5d4SEric van Gyzen                    processing application on top of Expat can cause
180ac69e5d4SEric van Gyzen                    arbitrary damage (e.g. code execution) depending
181ac69e5d4SEric van Gyzen                    on how invalid UTF-8 is handled inside the XML
182ac69e5d4SEric van Gyzen                    processor; validation was not their job but Expat's.
183ac69e5d4SEric van Gyzen                    Exploits with code execution are known to exist.
184ac69e5d4SEric van Gyzen            #561  CVE-2022-25236 -- Passing (one or more) namespace separator
185ac69e5d4SEric van Gyzen                    characters in "xmlns[:prefix]" attribute values
186ac69e5d4SEric van Gyzen                    made Expat send malformed tag names to the XML
187ac69e5d4SEric van Gyzen                    processor on top of Expat which can cause
188ac69e5d4SEric van Gyzen                    arbitrary damage (e.g. code execution) depending
189ac69e5d4SEric van Gyzen                    on such unexpectable cases are handled inside the XML
190ac69e5d4SEric van Gyzen                    processor; validation was not their job but Expat's.
191ac69e5d4SEric van Gyzen                    Exploits with code execution are known to exist.
192ac69e5d4SEric van Gyzen            #558  CVE-2022-25313 -- Fix stack exhaustion in doctype parsing
193ac69e5d4SEric van Gyzen                    that could be triggered by e.g. a 2 megabytes
194ac69e5d4SEric van Gyzen                    file with a large number of opening braces.
195ac69e5d4SEric van Gyzen                    Expected impact is denial of service or potentially
196ac69e5d4SEric van Gyzen                    arbitrary code execution.
197ac69e5d4SEric van Gyzen            #560  CVE-2022-25314 -- Fix integer overflow in function copyString;
198ac69e5d4SEric van Gyzen                    only affects the encoding name parameter at parser creation
199ac69e5d4SEric van Gyzen                    time which is often hardcoded (rather than user input),
200ac69e5d4SEric van Gyzen                    takes a value in the gigabytes to trigger, and a 64-bit
201ac69e5d4SEric van Gyzen                    machine.  Expected impact is denial of service.
202ac69e5d4SEric van Gyzen            #559  CVE-2022-25315 -- Fix integer overflow in function storeRawNames;
203ac69e5d4SEric van Gyzen                    needs input in the gigabytes and a 64-bit machine.
204ac69e5d4SEric van Gyzen                    Expected impact is denial of service or potentially
205ac69e5d4SEric van Gyzen                    arbitrary code execution.
206ac69e5d4SEric van Gyzen
207ac69e5d4SEric van Gyzen        Other changes:
208ac69e5d4SEric van Gyzen       #557 #564  Version info bumped from 9:4:8 to 9:5:8;
209ac69e5d4SEric van Gyzen                    see https://verbump.de/ for what these numbers do
210ac69e5d4SEric van Gyzen
211ac69e5d4SEric van Gyzen        Special thanks to:
212ac69e5d4SEric van Gyzen            Ivan Fratric
213ac69e5d4SEric van Gyzen            Samanta Navarro
214ac69e5d4SEric van Gyzen                 and
215ac69e5d4SEric van Gyzen            Google Project Zero
216ac69e5d4SEric van Gyzen            JetBrains
217ac69e5d4SEric van Gyzen
218ac69e5d4SEric van GyzenRelease 2.4.4 Sun January 30 2022
219ac69e5d4SEric van Gyzen        Security fixes:
220ac69e5d4SEric van Gyzen            #550  CVE-2022-23852 -- Fix signed integer overflow
221ac69e5d4SEric van Gyzen                    (undefined behavior) in function XML_GetBuffer
222ac69e5d4SEric van Gyzen                    (that is also called by function XML_Parse internally)
223ac69e5d4SEric van Gyzen                    for when XML_CONTEXT_BYTES is defined to >0 (which is both
224ac69e5d4SEric van Gyzen                    common and default).
225ac69e5d4SEric van Gyzen                    Impact is denial of service or more.
226ac69e5d4SEric van Gyzen            #551  CVE-2022-23990 -- Fix unsigned integer overflow in function
227ac69e5d4SEric van Gyzen                    doProlog triggered by large content in element type
228ac69e5d4SEric van Gyzen                    declarations when there is an element declaration handler
229ac69e5d4SEric van Gyzen                    present (from a prior call to XML_SetElementDeclHandler).
230ac69e5d4SEric van Gyzen                    Impact is denial of service or more.
231ac69e5d4SEric van Gyzen
232ac69e5d4SEric van Gyzen        Bug fixes:
233ac69e5d4SEric van Gyzen       #544 #545  xmlwf: Fix a memory leak on output file opening error
234ac69e5d4SEric van Gyzen
235ac69e5d4SEric van Gyzen        Other changes:
236ac69e5d4SEric van Gyzen            #546  Autotools: Fix broken CMake support under Cygwin
237ac69e5d4SEric van Gyzen            #554  Windows: Add missing files to the installer to fix
238ac69e5d4SEric van Gyzen                    compilation with CMake from installed sources
239ac69e5d4SEric van Gyzen       #552 #554  Version info bumped from 9:3:8 to 9:4:8;
240ac69e5d4SEric van Gyzen                    see https://verbump.de/ for what these numbers do
241ac69e5d4SEric van Gyzen
242ac69e5d4SEric van Gyzen        Special thanks to:
243ac69e5d4SEric van Gyzen            Carlo Bramini
244ac69e5d4SEric van Gyzen            hwt0415
245ac69e5d4SEric van Gyzen            Roland Illig
246ac69e5d4SEric van Gyzen            Samanta Navarro
247ac69e5d4SEric van Gyzen                 and
248ac69e5d4SEric van Gyzen            Clang LeakSan and the Clang team
249ac69e5d4SEric van Gyzen
250cc68614dSXin LIRelease 2.4.3 Sun January 16 2022
251cc68614dSXin LI        Security fixes:
252cc68614dSXin LI       #531 #534  CVE-2021-45960 -- Fix issues with left shifts by >=29 places
253cc68614dSXin LI                    resulting in
254cc68614dSXin LI                      a) realloc acting as free
255cc68614dSXin LI                      b) realloc allocating too few bytes
256cc68614dSXin LI                      c) undefined behavior
257cc68614dSXin LI                    depending on architecture and precise value
258cc68614dSXin LI                    for XML documents with >=2^27+1 prefixed attributes
259cc68614dSXin LI                    on a single XML tag a la
260cc68614dSXin LI                    "<r xmlns:a='[..]' a:a123='[..]' [..] />"
261cc68614dSXin LI                    where XML_ParserCreateNS is used to create the parser
262cc68614dSXin LI                    (which needs argument "-n" when running xmlwf).
263cc68614dSXin LI                    Impact is denial of service, or more.
264cc68614dSXin LI       #532 #538  CVE-2021-46143 (ZDI-CAN-16157) -- Fix integer overflow
265cc68614dSXin LI                    on variable m_groupSize in function doProlog leading
266cc68614dSXin LI                    to realloc acting as free.
267cc68614dSXin LI                    Impact is denial of service or more.
268cc68614dSXin LI            #539  CVE-2022-22822 to CVE-2022-22827 -- Prevent integer overflows
269cc68614dSXin LI                    near memory allocation at multiple places.  Mitre assigned
270cc68614dSXin LI                    a dedicated CVE for each involved internal C function:
271cc68614dSXin LI                    - CVE-2022-22822 for function addBinding
272cc68614dSXin LI                    - CVE-2022-22823 for function build_model
273cc68614dSXin LI                    - CVE-2022-22824 for function defineAttribute
274cc68614dSXin LI                    - CVE-2022-22825 for function lookup
275cc68614dSXin LI                    - CVE-2022-22826 for function nextScaffoldPart
276cc68614dSXin LI                    - CVE-2022-22827 for function storeAtts
277cc68614dSXin LI                    Impact is denial of service or more.
278cc68614dSXin LI
279cc68614dSXin LI        Other changes:
280cc68614dSXin LI            #535  CMake: Make call to file(GENERATE [..]) work for CMake <3.19
281cc68614dSXin LI            #541  Autotools|CMake: MinGW: Make run.sh(.in) work for Cygwin
282cc68614dSXin LI                    and MSYS2 by not going through Wine on these platforms
283cc68614dSXin LI       #527 #528  Address compiler warnings
284cc68614dSXin LI       #533 #543  Version info bumped from 9:2:8 to 9:3:8;
285cc68614dSXin LI                    see https://verbump.de/ for what these numbers do
286cc68614dSXin LI
287cc68614dSXin LI        Infrastructure:
288cc68614dSXin LI            #536  CI: Check for realistic minimum CMake version
289cc68614dSXin LI       #529 #539  CI: Cover compilation with -m32
290cc68614dSXin LI            #529  CI: Store coverage reports as artifacts for download
291cc68614dSXin LI            #528  CI: Upgrade Clang from 11 to 13
292cc68614dSXin LI
293cc68614dSXin LI        Special thanks to:
294cc68614dSXin LI            An anonymous whitehat
295cc68614dSXin LI            Christopher Degawa
296cc68614dSXin LI            J. Peter Mugaas
297cc68614dSXin LI            Tyson Smith
298cc68614dSXin LI                 and
299cc68614dSXin LI            GCC Farm Project
300cc68614dSXin LI            Trend Micro Zero Day Initiative
301cc68614dSXin LI
302cc68614dSXin LIRelease 2.4.2 Sun December 19 2021
303cc68614dSXin LI        Other changes:
304cc68614dSXin LI       #509 #510  Link againgst libm for function "isnan"
305cc68614dSXin LI       #513 #514  Include expat_config.h as early as possible
306cc68614dSXin LI            #498  Autotools: Include files with release archives:
307cc68614dSXin LI                    - buildconf.sh
308cc68614dSXin LI                    - fuzz/*.c
30971f0c44aSXin LI       #507 #519  Autotools: Sync CMake templates with CMake 3.20
310cc68614dSXin LI       #495 #524  CMake: MinGW: Fix pkg-config section "Libs" for
311cc68614dSXin LI                    - non-release build types (e.g. -DCMAKE_BUILD_TYPE=Debug)
312cc68614dSXin LI                    - multi-config CMake generators (e.g. Ninja Multi-Config)
313cc68614dSXin LI       #502 #503  docs: Document that function XML_GetBuffer may return NULL
314cc68614dSXin LI                    when asking for a buffer of 0 (zero) bytes size
315cc68614dSXin LI       #522 #523  docs: Fix return value docs for both
316cc68614dSXin LI                    XML_SetBillionLaughsAttackProtection* functions
317cc68614dSXin LI       #525 #526  Version info bumped from 9:1:8 to 9:2:8;
318cc68614dSXin LI                    see https://verbump.de/ for what these numbers do
319cc68614dSXin LI
320cc68614dSXin LI        Special thanks to:
321cc68614dSXin LI            Dong-hee Na
322cc68614dSXin LI            Joergen Ibsen
323cc68614dSXin LI            Kai Pastor
324cc68614dSXin LI
325cc68614dSXin LIRelease 2.4.1 Sun May 23 2021
326cc68614dSXin LI        Bug fixes:
327cc68614dSXin LI       #488 #490  Autotools: Fix installed header expat_config.h for multilib
328cc68614dSXin LI                    systems; regression introduced in 2.4.0 by pull request #486
329cc68614dSXin LI
330cc68614dSXin LI        Other changes:
331cc68614dSXin LI       #491 #492  Version info bumped from 9:0:8 to 9:1:8;
332cc68614dSXin LI                    see https://verbump.de/ for what these numbers do
333cc68614dSXin LI
334cc68614dSXin LI        Special thanks to:
335cc68614dSXin LI            Gentoo's QA check "multilib_check_headers"
336cc68614dSXin LI
337cc68614dSXin LIRelease 2.4.0 Sun May 23 2021
338cc68614dSXin LI        Security fixes:
339cc68614dSXin LI   #34 #466 #484  CVE-2013-0340/CWE-776 -- Protect against billion laughs attacks
340cc68614dSXin LI                    (denial-of-service; flavors targeting CPU time or RAM or both,
341cc68614dSXin LI                    leveraging general entities or parameter entities or both)
342cc68614dSXin LI                    by tracking and limiting the input amplification factor
343cc68614dSXin LI                    (<amplification> := (<direct> + <indirect>) / <direct>).
344cc68614dSXin LI                    By conservative default, amplification up to a factor of 100.0
345cc68614dSXin LI                    is tolerated and rejection only starts after 8 MiB of output bytes
346cc68614dSXin LI                    (=<direct> + <indirect>) have been processed.
347cc68614dSXin LI                    The fix adds the following to the API:
348cc68614dSXin LI                    - A new error code XML_ERROR_AMPLIFICATION_LIMIT_BREACH to
349cc68614dSXin LI                      signals this specific condition.
350cc68614dSXin LI                    - Two new API functions ..
351cc68614dSXin LI                      - XML_SetBillionLaughsAttackProtectionMaximumAmplification and
352cc68614dSXin LI                      - XML_SetBillionLaughsAttackProtectionActivationThreshold
353cc68614dSXin LI                      .. to further tighten billion laughs protection parameters
354cc68614dSXin LI                      when desired.  Please see file "doc/reference.html" for details.
355cc68614dSXin LI                      If you ever need to increase the defaults for non-attack XML
356cc68614dSXin LI                      payload, please file a bug report with libexpat.
357cc68614dSXin LI                    - Two new XML_FEATURE_* constants ..
358cc68614dSXin LI                      - that can be queried using the XML_GetFeatureList function, and
359cc68614dSXin LI                      - that are shown in "xmlwf -v" output.
360cc68614dSXin LI                    - Two new environment variable switches ..
361cc68614dSXin LI                      - EXPAT_ACCOUNTING_DEBUG=(0|1|2|3) and
362cc68614dSXin LI                      - EXPAT_ENTITY_DEBUG=(0|1)
363cc68614dSXin LI                      .. for runtime debugging of accounting and entity processing.
364cc68614dSXin LI                      Specific behavior of these values may change in the future.
365cc68614dSXin LI                    - Two new command line arguments "-a FACTOR" and "-b BYTES"
366cc68614dSXin LI                      for xmlwf to further tighten billion laughs protection
367cc68614dSXin LI                      parameters when desired.
368cc68614dSXin LI                      If you ever need to increase the defaults for non-attack XML
369cc68614dSXin LI                      payload, please file a bug report with libexpat.
370cc68614dSXin LI
371cc68614dSXin LI        Bug fixes:
372cc68614dSXin LI       #332 #470  For (non-default) compilation with -DEXPAT_MIN_SIZE=ON (CMake)
373cc68614dSXin LI                    or CPPFLAGS=-DXML_MIN_SIZE (GNU Autotools): Fix segfault
374cc68614dSXin LI                    for UTF-16 payloads containing CDATA sections.
375cc68614dSXin LI       #485 #486  Autotools: Fix generated CMake files for non-64bit and
376cc68614dSXin LI                    non-Linux platforms (e.g. macOS and MinGW in particular)
377cc68614dSXin LI                    that were introduced with release 2.3.0
378cc68614dSXin LI
379cc68614dSXin LI        Other changes:
380cc68614dSXin LI       #468 #469  xmlwf: Improve help output and the xmlwf man page
381cc68614dSXin LI            #463  xmlwf: Improve maintainability through some refactoring
382cc68614dSXin LI            #477  xmlwf: Fix man page DocBook validity
38371f0c44aSXin LI            #456  Autotools: Sync CMake templates with CMake 3.18
384cc68614dSXin LI       #458 #459  CMake: Support absolute paths for both CMAKE_INSTALL_LIBDIR
385cc68614dSXin LI                    and CMAKE_INSTALL_INCLUDEDIR
386cc68614dSXin LI       #471 #481  CMake: Add support for standard variable BUILD_SHARED_LIBS
387cc68614dSXin LI            #457  Unexpose symbol _INTERNAL_trim_to_complete_utf8_characters
388cc68614dSXin LI            #467  Resolve macro HAVE_EXPAT_CONFIG_H
389cc68614dSXin LI            #472  Delete unused legacy helper file "conftools/PrintPath"
390cc68614dSXin LI       #473 #483  Improve attribution
391cc68614dSXin LI  #464 #465 #477  doc/reference.html: Fix XHTML validity
392cc68614dSXin LI       #475 #478  doc/reference.html: Replace the 90s look by OK.css
393cc68614dSXin LI            #479  Version info bumped from 8:0:7 to 9:0:8
394cc68614dSXin LI                    due to addition of new symbols and error codes;
395cc68614dSXin LI                    see https://verbump.de/ for what these numbers do
396cc68614dSXin LI
397cc68614dSXin LI        Infrastructure:
398cc68614dSXin LI            #456  CI: Enable periodic runs
399cc68614dSXin LI            #457  CI: Start covering the list of exported symbols
400cc68614dSXin LI            #474  CI: Isolate coverage task
401cc68614dSXin LI       #476 #482  CI: Adapt to breaking changes in image "ubuntu-18.04"
402cc68614dSXin LI            #477  CI: Cover well-formedness and DocBook/XHTML validity
403cc68614dSXin LI                    of doc/reference.html and doc/xmlwf.xml
404cc68614dSXin LI
405cc68614dSXin LI        Special thanks to:
406cc68614dSXin LI            Dimitry Andric
407cc68614dSXin LI            Eero Helenius
408cc68614dSXin LI            Nick Wellnhofer
409cc68614dSXin LI            Rhodri James
410cc68614dSXin LI            Tomas Korbar
411cc68614dSXin LI            Yury Gribov
412cc68614dSXin LI                 and
413cc68614dSXin LI            Clang LeakSan
414cc68614dSXin LI            JetBrains
415cc68614dSXin LI            OSS-Fuzz
416cc68614dSXin LI
417cc68614dSXin LIRelease 2.3.0 Thu March 25 2021
418cc68614dSXin LI        Bug fixes:
419cc68614dSXin LI            #438  When calling XML_ParseBuffer without a prior successful call to
420cc68614dSXin LI                    XML_GetBuffer as a user, no longer trigger undefined behavior
421cc68614dSXin LI                    (by adding an integer to a NULL pointer) but rather return
422cc68614dSXin LI                    XML_STATUS_ERROR and set the error code to (new) code
423cc68614dSXin LI                    XML_ERROR_NO_BUFFER. Found by UBSan (UndefinedBehaviorSanitizer)
424cc68614dSXin LI                    of Clang 11 (but not Clang 9).
425cc68614dSXin LI            #444  xmlwf: Exit status 2 was used for both:
426cc68614dSXin LI                    - malformed input files (documented) and
427cc68614dSXin LI                    - invalid command-line arguments (undocumented).
428cc68614dSXin LI                    The case of invalid command-line arguments now
429cc68614dSXin LI                    has its own exit status 4, resolving the ambiguity.
430cc68614dSXin LI
431cc68614dSXin LI        Other changes:
432cc68614dSXin LI            #439  xmlwf: Add argument -k to allow continuing after
433cc68614dSXin LI                    non-fatal errors
434cc68614dSXin LI            #439  xmlwf: Add section about exit status to the -h help output
435cc68614dSXin LI  #422 #426 #447  Windows: Drop support for Visual Studio <=14.0/2015
436cc68614dSXin LI            #434  Windows: CMake: Detect unsupported Visual Studio at
437cc68614dSXin LI                    configure time (rather than at compile time)
438cc68614dSXin LI       #382 #428  testrunner: Make verbose mode (argument "-v") report
439cc68614dSXin LI                    about passed tests, and make default mode report about
440cc68614dSXin LI                    failures, as well.
441cc68614dSXin LI            #442  CMake: Call "enable_language(CXX)" prior to tinkering
442cc68614dSXin LI                    with CMAKE_CXX_* variables
443cc68614dSXin LI            #448  Document use of libexpat from a CMake-based project
444cc68614dSXin LI            #451  Autotools: Install CMake files as generated by CMake 3.19.6
445cc68614dSXin LI                    so that users with "find_package(expat [..] CONFIG [..])"
446cc68614dSXin LI                    are served on distributions that are *not* using the CMake
447cc68614dSXin LI                    build system inside for libexpat packaging
448cc68614dSXin LI       #436 #437  Autotools: Drop obsolescent macro AC_HEADER_STDC
449cc68614dSXin LI       #450 #452  Autotools: Resolve use of obsolete macro AC_CONFIG_HEADER
450cc68614dSXin LI            #441  Address compiler warnings
451cc68614dSXin LI            #443  Version info bumped from 7:12:6 to 8:0:7
452cc68614dSXin LI                    due to addition of error code XML_ERROR_NO_BUFFER
453cc68614dSXin LI                    (see https://verbump.de/ for what these numbers do)
454cc68614dSXin LI
455cc68614dSXin LI        Infrastructure:
456cc68614dSXin LI       #435 #446  Replace Travis CI by GitHub Actions
457cc68614dSXin LI
458cc68614dSXin LI        Special thanks to:
459cc68614dSXin LI            Alexander Richardson
460cc68614dSXin LI            Oleksandr Popovych
461cc68614dSXin LI            Thomas Beutlich
462cc68614dSXin LI            Tim Bray
463cc68614dSXin LI                 and
464cc68614dSXin LI            Clang LeakSan, Clang 11 UBSan and the Clang team
465cc68614dSXin LI
466cc68614dSXin LIRelease 2.2.10 Sat October 3 2020
467cc68614dSXin LI        Bug fixes:
468cc68614dSXin LI  #390 #395 #398  Fix undefined behavior during parsing caused by
469cc68614dSXin LI                    pointer arithmetic with NULL pointers
470cc68614dSXin LI       #404 #405  Fix reading uninitialized variable during parsing
471cc68614dSXin LI            #406  xmlwf: Add missing check for malloc NULL return
472cc68614dSXin LI
473cc68614dSXin LI        Other changes:
474cc68614dSXin LI            #396  Windows: Drop support for Visual Studio <=8.0/2005
475cc68614dSXin LI            #409  Windows: Add missing file "Changes" to the installer
476cc68614dSXin LI                    to fix compilation with CMake from installed sources
477cc68614dSXin LI            #403  xmlwf: Document exit codes in xmlwf manpage and
478cc68614dSXin LI                    exit with code 3 (rather than code 1) for output errors
479cc68614dSXin LI                    when used with "-d DIRECTORY"
480cc68614dSXin LI       #356 #359  MinGW: Provide declaration of rand_s for mingwrt <5.3.0
481cc68614dSXin LI       #383 #392  Autotools: Use -Werror while configure tests the compiler
482cc68614dSXin LI                    for supported compile flags to avoid false positives
483cc68614dSXin LI  #383 #393 #394  Autotools: Improve handling of user (C|CPP|CXX|LD)FLAGS,
484cc68614dSXin LI                    e.g. ensure that they have the last word over flags added
485cc68614dSXin LI                    while running ./configure
486cc68614dSXin LI            #360  CMake: Create libexpatw.{dll,so} and expatw.pc (with emphasis
487cc68614dSXin LI                    on suffix "w") with -DEXPAT_CHAR_TYPE=(ushort|wchar_t)
488cc68614dSXin LI            #360  CMake: Detect and deny unsupported build combinations
489cc68614dSXin LI                    involving -DEXPAT_CHAR_TYPE=(ushort|wchar_t)
490cc68614dSXin LI            #360  CMake: Install pre-compiled shipped xmlwf.1 manpage in case
491cc68614dSXin LI                    of -DEXPAT_BUILD_DOCS=OFF
492cc68614dSXin LI  #375 #380 #419  CMake: Fix use of Expat by means of add_subdirectory
493cc68614dSXin LI       #407 #408  CMake: Keep expat target name constant at "expat"
494cc68614dSXin LI                    (i.e. refrain from using the target name to control
495cc68614dSXin LI                    build artifact filenames)
496cc68614dSXin LI            #385  CMake: Fix compilation with -DEXPAT_SHARED_LIBS=OFF for
497cc68614dSXin LI                    Windows
498cc68614dSXin LI                  CMake: Expose man page compilation as target "xmlwf-manpage"
499cc68614dSXin LI       #413 #414  CMake: Introduce option EXPAT_BUILD_PKGCONFIG
500cc68614dSXin LI                    to control generation of pkg-config file "expat.pc"
501cc68614dSXin LI            #424  CMake: Add minimalistic support for building binary packages
502cc68614dSXin LI                    with CMake target "package"; based on CPack
503cc68614dSXin LI            #366  CMake: Add option -DEXPAT_OSSFUZZ_BUILD=(ON|OFF) with
504cc68614dSXin LI                    default OFF to build fuzzer code against OSS-Fuzz and
505cc68614dSXin LI                    related environment variable LIB_FUZZING_ENGINE
506cc68614dSXin LI            #354  Fix testsuite for -DEXPAT_DTD=OFF and -DEXPAT_NS=OFF, each
507cc68614dSXin LI    #354 #355 ..
508cc68614dSXin LI       #356 #412  Address compiler warnings
509cc68614dSXin LI       #368 #369  Address pngcheck warnings with doc/*.png images
510cc68614dSXin LI            #425  Version info bumped from 7:11:6 to 7:12:6
511cc68614dSXin LI
512cc68614dSXin LI        Special thanks to:
513cc68614dSXin LI            asavah
514cc68614dSXin LI            Ben Wagner
515cc68614dSXin LI            Bhargava Shastry
516cc68614dSXin LI            Frank Landgraf
517cc68614dSXin LI            Jeffrey Walton
518cc68614dSXin LI            Joe Orton
519cc68614dSXin LI            Kleber Tarcísio
520cc68614dSXin LI            Ma Lin
521cc68614dSXin LI            Maciej Sroczyński
522cc68614dSXin LI            Mohammed Khajapasha
523cc68614dSXin LI            Vadim Zeitlin
524cc68614dSXin LI                 and
525cc68614dSXin LI            Cppcheck 2.0 and the Cppcheck team
526cc68614dSXin LI
527cc68614dSXin LIRelease 2.2.9 Wed September 25 2019
5286b2c1e49SXin LI        Other changes:
5296b2c1e49SXin LI                  examples: Drop executable bits from elements.c
5306b2c1e49SXin LI            #349  Windows: Change the name of the Windows DLLs from expat*.dll
5316b2c1e49SXin LI                    to libexpat*.dll once more (regression from 2.2.8, first
5326b2c1e49SXin LI                    fixed in 1.95.3, issue #61 on SourceForge today,
5336b2c1e49SXin LI                    was issue #432456 back then); needs a fix due
5346b2c1e49SXin LI                    case-insensitive file systems on Windows and the fact that
5356b2c1e49SXin LI                    Perl's XML::Parser::Expat compiles into Expat.dll.
5366b2c1e49SXin LI            #347  Windows: Only define _CRT_RAND_S if not defined
5376b2c1e49SXin LI                  Version info bumped from 7:10:6 to 7:11:6
5386b2c1e49SXin LI
5396b2c1e49SXin LI        Special thanks to:
5406b2c1e49SXin LI            Ben Wagner
5416b2c1e49SXin LI
542cc68614dSXin LIRelease 2.2.8 Fri September 13 2019
5436b2c1e49SXin LI        Security fixes:
5446b2c1e49SXin LI       #317 #318  CVE-2019-15903 -- Fix heap overflow triggered by
5456b2c1e49SXin LI                    XML_GetCurrentLineNumber (or XML_GetCurrentColumnNumber),
5466b2c1e49SXin LI                    and deny internal entities closing the doctype;
5476b2c1e49SXin LI                    fixed in commit c20b758c332d9a13afbbb276d30db1d183a85d43
5486b2c1e49SXin LI
5496b2c1e49SXin LI        Bug fixes:
5506b2c1e49SXin LI            #240  Fix cases where XML_StopParser did not have any effect
5516b2c1e49SXin LI                    when called from inside of an end element handler
5526b2c1e49SXin LI            #341  xmlwf: Fix exit code for operation without "-d DIRECTORY";
5536b2c1e49SXin LI                    previously, only "-d DIRECTORY" would give you a proper
5546b2c1e49SXin LI                    exit code:
5556b2c1e49SXin LI                      # xmlwf -d . <<<'<not well-formed>' 2>/dev/null ; echo $?
5566b2c1e49SXin LI                      2
5576b2c1e49SXin LI                      # xmlwf <<<'<not well-formed>' 2>/dev/null ; echo $?
5586b2c1e49SXin LI                      0
5596b2c1e49SXin LI                    Now both cases return exit code 2.
5606b2c1e49SXin LI
5616b2c1e49SXin LI        Other changes:
5626b2c1e49SXin LI       #299 #302  Windows: Replace LoadLibrary hack to access
5636b2c1e49SXin LI                    unofficial API function SystemFunction036 (RtlGenRandom)
5646b2c1e49SXin LI                    by using official API function rand_s (needs WinXP+)
5656b2c1e49SXin LI            #325  Windows: Drop support for Visual Studio <=7.1/2003
5666b2c1e49SXin LI                    and document supported compilers in README.md
5676b2c1e49SXin LI            #286  Windows: Remove COM code from xmlwf; in case it turns
5686b2c1e49SXin LI                    out needed later, there will be a dedicated repository
5696b2c1e49SXin LI                    below https://github.com/libexpat/ for that code
5706b2c1e49SXin LI            #322  Windows: Remove explicit MSVC solution and project files.
5716b2c1e49SXin LI                    You can generate Visual Studio solution files through
5726b2c1e49SXin LI                    CMake, e.g.: cmake -G"Visual Studio 15 2017" .
5736b2c1e49SXin LI            #338  xmlwf: Make "xmlwf -h" help output more friendly
5746b2c1e49SXin LI            #339  examples: Improve elements.c
5756b2c1e49SXin LI       #244 #264  Autotools: Add argument --enable-xml-attr-info
5766b2c1e49SXin LI       #239 #301  Autotools: Add arguments
5776b2c1e49SXin LI                    --with-getrandom
5786b2c1e49SXin LI                    --without-getrandom
5796b2c1e49SXin LI                    --with-sys-getrandom
5806b2c1e49SXin LI                    --without-sys-getrandom
5816b2c1e49SXin LI       #312 #343  Autotools: Fix linking issues with "./configure LD=clang"
5826b2c1e49SXin LI                  Autotools: Fix "make run-xmltest" for out-of-source builds
5836b2c1e49SXin LI       #329 #336  CMake: Pull all options from Expat <=2.2.7 into namespace
5846b2c1e49SXin LI                    prefix EXPAT_ with the exception of DOCBOOK_TO_MAN:
5856b2c1e49SXin LI                    - BUILD_doc            -> EXPAT_BUILD_DOCS (plural)
5866b2c1e49SXin LI                    - BUILD_examples       -> EXPAT_BUILD_EXAMPLES
5876b2c1e49SXin LI                    - BUILD_shared         -> EXPAT_SHARED_LIBS
5886b2c1e49SXin LI                    - BUILD_tests          -> EXPAT_BUILD_TESTS
5896b2c1e49SXin LI                    - BUILD_tools          -> EXPAT_BUILD_TOOLS
5906b2c1e49SXin LI                    - DOCBOOK_TO_MAN       -> DOCBOOK_TO_MAN (unchanged)
5916b2c1e49SXin LI                    - INSTALL              -> EXPAT_ENABLE_INSTALL
5926b2c1e49SXin LI                    - MSVC_USE_STATIC_CRT  -> EXPAT_MSVC_STATIC_CRT
5936b2c1e49SXin LI                    - USE_libbsd           -> EXPAT_WITH_LIBBSD
5946b2c1e49SXin LI                    - WARNINGS_AS_ERRORS   -> EXPAT_WARNINGS_AS_ERRORS
5956b2c1e49SXin LI                    - XML_CONTEXT_BYTES    -> EXPAT_CONTEXT_BYTES
5966b2c1e49SXin LI                    - XML_DEV_URANDOM      -> EXPAT_DEV_URANDOM
5976b2c1e49SXin LI                    - XML_DTD              -> EXPAT_DTD
5986b2c1e49SXin LI                    - XML_NS               -> EXPAT_NS
5996b2c1e49SXin LI                    - XML_UNICODE          -> EXPAT_CHAR_TYPE=ushort (!)
6006b2c1e49SXin LI                    - XML_UNICODE_WCHAR_T  -> EXPAT_CHAR_TYPE=wchar_t (!)
6016b2c1e49SXin LI       #244 #264  CMake: Add argument -DEXPAT_ATTR_INFO=(ON|OFF),
6026b2c1e49SXin LI                    default OFF
6036b2c1e49SXin LI            #326  CMake: Add argument -DEXPAT_LARGE_SIZE=(ON|OFF),
6046b2c1e49SXin LI                    default OFF
6056b2c1e49SXin LI            #328  CMake: Add argument -DEXPAT_MIN_SIZE=(ON|OFF),
6066b2c1e49SXin LI                    default OFF
6076b2c1e49SXin LI       #239 #277  CMake: Add arguments
6086b2c1e49SXin LI                    -DEXPAT_WITH_GETRANDOM=(ON|OFF|AUTO), default AUTO
6096b2c1e49SXin LI                    -DEXPAT_WITH_SYS_GETRANDOM=(ON|OFF|AUTO), default AUTO
6106b2c1e49SXin LI            #326  CMake: Install expat_config.h to include directory
6116b2c1e49SXin LI            #326  CMake: Generate and install configuration files for
6126b2c1e49SXin LI                    future find_package(expat [..] CONFIG [..])
6136b2c1e49SXin LI                  CMake: Now produces a summary of applied configuration
6146b2c1e49SXin LI                  CMake: Require C++ compiler only when tests are enabled
6156b2c1e49SXin LI            #330  CMake: Fix compilation for 16bit character types,
6166b2c1e49SXin LI                    i.e. ex -DXML_UNICODE=ON (and ex -DXML_UNICODE_WCHAR_T=ON)
6176b2c1e49SXin LI            #265  CMake: Fix linking with MinGW
6186b2c1e49SXin LI            #330  CMake: Add full support for MinGW; to enable, use
6196b2c1e49SXin LI                    -DCMAKE_TOOLCHAIN_FILE=[expat]/cmake/mingw-toolchain.cmake
6206b2c1e49SXin LI            #330  CMake: Port "make run-xmltest" from GNU Autotools to CMake
6216b2c1e49SXin LI            #316  CMake: Windows: Make binary postfix match MSVC
6226b2c1e49SXin LI                    Old: expat[d].lib
6236b2c1e49SXin LI                    New: expat[w][d][MD|MT].lib
6246b2c1e49SXin LI                  CMake: Migrate files from Windows to Unix line endings
6256b2c1e49SXin LI            #308  CMake: Integrate OSS-Fuzz fuzzers, option
6266b2c1e49SXin LI                    -DEXPAT_BUILD_FUZZERS=(ON|OFF), default OFF
6276b2c1e49SXin LI             #14  Drop an OpenVMS support leftover
6286b2c1e49SXin LI    #235 #268 ..
6296b2c1e49SXin LI    #270 #310 ..
6306b2c1e49SXin LI  #313 #331 #333  Address compiler warnings
6316b2c1e49SXin LI    #282 #283 ..
6326b2c1e49SXin LI       #284 #285  Address cppcheck warnings
6336b2c1e49SXin LI       #294 #295  Address Clang Static Analyzer warnings
6346b2c1e49SXin LI        #24 #293  Mass-apply clang-format 9 (and ensure conformance during CI)
6356b2c1e49SXin LI                  Version info bumped from 7:9:6 to 7:10:6
6366b2c1e49SXin LI
6376b2c1e49SXin LI        Special thanks to:
6386b2c1e49SXin LI            David Loffredo
6396b2c1e49SXin LI            Joonun Jang
6406b2c1e49SXin LI            Kishore Kunche
6416b2c1e49SXin LI            Marco Maggi
6426b2c1e49SXin LI            Mitch Phillips
643cc68614dSXin LI            Mohammed Khajapasha
6446b2c1e49SXin LI            Rolf Ade
6456b2c1e49SXin LI            xantares
6466b2c1e49SXin LI            Zhongyuan Zhou
6476b2c1e49SXin LI
6486b2c1e49SXin LIRelease 2.2.7 Wed June 19 2019
6496b2c1e49SXin LI        Security fixes:
6506b2c1e49SXin LI       #186 #262  CVE-2018-20843 -- Fix extraction of namespace prefixes from
6516b2c1e49SXin LI                    XML names; XML names with multiple colons could end up in
6526b2c1e49SXin LI                    the wrong namespace, and take a high amount of RAM and CPU
6536b2c1e49SXin LI                    resources while processing, opening the door to
6546b2c1e49SXin LI                    use for denial-of-service attacks
6556b2c1e49SXin LI
6566b2c1e49SXin LI        Other changes:
6576b2c1e49SXin LI       #195 #197  Autotools/CMake: Utilize -fvisibility=hidden to stop
6586b2c1e49SXin LI                    exporting non-API symbols
6596b2c1e49SXin LI            #227  Autotools: Add --without-examples and --without-tests
6606b2c1e49SXin LI            #228  Autotools: Modernize configure.ac
6616b2c1e49SXin LI       #245 #246  Autotools: Fix check for -fvisibility=hidden for Clang
6626b2c1e49SXin LI       #247 #248  Autotools: Fix compilation for lack of docbook2x-man
6636b2c1e49SXin LI       #236 #258  Autotools: Produce .tar.{gz,lz,xz} release archives
6646b2c1e49SXin LI            #212  CMake: Make libdir of pkgconfig expat.pc support multilib
6656b2c1e49SXin LI       #158 #263  CMake: Build man page in PROJECT_BINARY_DIR not _SOURCE_DIR
6666b2c1e49SXin LI            #219  Remove fallback to bcopy, assume that memmove(3) exists
6676b2c1e49SXin LI            #257  Use portable "/usr/bin/env bash" shebang (e.g. for OpenBSD)
6686b2c1e49SXin LI            #243  Windows: Fix syntax of .def module definition files
6696b2c1e49SXin LI                  Version info bumped from 7:8:6 to 7:9:6
6706b2c1e49SXin LI
6716b2c1e49SXin LI        Special thanks to:
6726b2c1e49SXin LI            Benjamin Peterson
6736b2c1e49SXin LI            Caolán McNamara
6746b2c1e49SXin LI            Hanno Böck
6756b2c1e49SXin LI            KangLin
6766b2c1e49SXin LI            Kishore Kunche
6776b2c1e49SXin LI            Marco Maggi
6786b2c1e49SXin LI            Rhodri James
6796b2c1e49SXin LI            Sebastian Dröge
6806b2c1e49SXin LI            userwithuid
6816b2c1e49SXin LI            Yury Gribov
6826b2c1e49SXin LI
6830a48773fSEric van GyzenRelease 2.2.6 Sun August 12 2018
6840a48773fSEric van Gyzen        Bug fixes:
6850a48773fSEric van Gyzen       #170 #206  Avoid doing arithmetic with NULL pointers in XML_GetBuffer
6860a48773fSEric van Gyzen       #204 #205  Fix 2.2.5 regression with suspend-resume while parsing
6870a48773fSEric van Gyzen                    a document like '<root/>'
6880a48773fSEric van Gyzen
6890a48773fSEric van Gyzen        Other changes:
6900a48773fSEric van Gyzen       #165 #168  Autotools: Fix docbook-related configure syntax error
6910a48773fSEric van Gyzen            #166  Autotools: Avoid grep option `-q` for Solaris
6920a48773fSEric van Gyzen            #167  Autotools: Support
6930a48773fSEric van Gyzen                    ./configure DOCBOOK_TO_MAN="xmlto man --skip-validation"
6940a48773fSEric van Gyzen       #159 #167  Autotools: Support DOCBOOK_TO_MAN command which produces
6950a48773fSEric van Gyzen                    xmlwf.1 rather than XMLWF.1; also covers case insensitive
6960a48773fSEric van Gyzen                    file systems
6970a48773fSEric van Gyzen            #181  Autotools: Drop -rpath option passed to libtool
6980a48773fSEric van Gyzen            #188  Autotools: Detect and deny SGML docbook2man as ours is XML
6990a48773fSEric van Gyzen            #188  Autotools/CMake: Support command db2x_docbook2man as well
7000a48773fSEric van Gyzen            #174  CMake: Introduce option WARNINGS_AS_ERRORS, defaults to OFF
7010a48773fSEric van Gyzen       #184 #185  CMake: Introduce option MSVC_USE_STATIC_CRT, defaults to OFF
7020a48773fSEric van Gyzen       #207 #208  CMake: Introduce option XML_UNICODE and XML_UNICODE_WCHAR_T,
7030a48773fSEric van Gyzen                    both defaulting to OFF
7040a48773fSEric van Gyzen            #175  CMake: Prefer check_symbol_exists over check_function_exists
7050a48773fSEric van Gyzen            #176  CMake: Create the same pkg-config file as with GNU Autotools
7060a48773fSEric van Gyzen       #178 #179  CMake: Use GNUInstallDirs module to set proper defaults for
7070a48773fSEric van Gyzen                    install directories
7080a48773fSEric van Gyzen            #208  CMake: Utilize expat_config.h.cmake for XML_DEV_URANDOM
7090a48773fSEric van Gyzen            #180  Windows: Fix compilation of test suite for Visual Studio 2008
7100a48773fSEric van Gyzen  #131 #173 #202  Address compiler warnings
7110a48773fSEric van Gyzen  #187 #190 #200  Fix miscellaneous typos
7120a48773fSEric van Gyzen                  Version info bumped from 7:7:6 to 7:8:6
7130a48773fSEric van Gyzen
7140a48773fSEric van Gyzen        Special thanks to:
7150a48773fSEric van Gyzen            Anton Maklakov
7160a48773fSEric van Gyzen            Benjamin Peterson
7170a48773fSEric van Gyzen            Brad King
7180a48773fSEric van Gyzen            Franek Korta
7190a48773fSEric van Gyzen            Frank Rast
7200a48773fSEric van Gyzen            Joe Orton
7210a48773fSEric van Gyzen            luzpaz
7220a48773fSEric van Gyzen            Pedro Vicente
7230a48773fSEric van Gyzen            Rainer Jung
7240a48773fSEric van Gyzen            Rhodri James
7250a48773fSEric van Gyzen            Rolf Ade
7260a48773fSEric van Gyzen            Rolf Eike Beer
7270a48773fSEric van Gyzen            Thomas Beutlich
7280a48773fSEric van Gyzen            Tomasz Kłoczko
7290a48773fSEric van Gyzen
7300a48773fSEric van GyzenRelease 2.2.5 Tue October 31 2017
7310a48773fSEric van Gyzen        Bug fixes:
7320a48773fSEric van Gyzen              #8  If the parser runs out of memory, make sure its internal
7330a48773fSEric van Gyzen                    state reflects the memory it actually has, not the memory
7340a48773fSEric van Gyzen                    it wanted to have.
7350a48773fSEric van Gyzen             #11  The default handler wasn't being called when it should for
7360a48773fSEric van Gyzen                    a SYSTEM or PUBLIC doctype if an entity declaration handler
7370a48773fSEric van Gyzen                    was registered.
7380a48773fSEric van Gyzen       #137 #138  Fix a case of mistakenly reported parsing success where
7390a48773fSEric van Gyzen                    XML_StopParser was called from an element handler
7400a48773fSEric van Gyzen            #162  Function XML_ErrorString was returning NULL rather than
7410a48773fSEric van Gyzen                    a message for code XML_ERROR_INVALID_ARGUMENT
7420a48773fSEric van Gyzen                    introduced with release 2.2.1
7430a48773fSEric van Gyzen
7440a48773fSEric van Gyzen        Other changes:
7450a48773fSEric van Gyzen            #106  xmlwf: Add argument -N adding notation declarations
7460a48773fSEric van Gyzen        #75 #106  Test suite: Resolve expected failure cases where xmlwf
7470a48773fSEric van Gyzen                    output was incomplete
7480a48773fSEric van Gyzen            #127  Windows: Fix test suite compilation
7490a48773fSEric van Gyzen       #126 #127  Windows: Fix compilation for Visual Studio 2012
7500a48773fSEric van Gyzen                  Windows: Upgrade shipped project files to Visual Studio 2017
7510a48773fSEric van Gyzen        #33 #132  tests: Mass-fix compilation for XML_UNICODE_WCHAR_T
7520a48773fSEric van Gyzen            #129  examples: Fix compilation for XML_UNICODE_WCHAR_T
7530a48773fSEric van Gyzen            #130  benchmark: Fix compilation for XML_UNICODE_WCHAR_T
7540a48773fSEric van Gyzen            #144  xmlwf: Fix compilation for XML_UNICODE_WCHAR_T; still needs
7550a48773fSEric van Gyzen                    Windows or MinGW for 2-byte wchar_t
7560a48773fSEric van Gyzen              #9  Address two Clang Static Analyzer false positives
7570a48773fSEric van Gyzen             #59  Resolve troublesome macros hiding parser struct membership
7580a48773fSEric van Gyzen                    and dereferencing that pointer
7590a48773fSEric van Gyzen              #6  Resolve superfluous internal malloc/realloc switch
7600a48773fSEric van Gyzen       #153 #155  Improve docbook2x-man detection
7610a48773fSEric van Gyzen            #160  Undefine NDEBUG in the test suite (rather than rejecting it)
7620a48773fSEric van Gyzen            #161  Address compiler warnings
7630a48773fSEric van Gyzen                  Version info bumped from 7:6:6 to 7:7:6
7640a48773fSEric van Gyzen
7650a48773fSEric van Gyzen        Special thanks to:
7660a48773fSEric van Gyzen            Benbuck Nason
7670a48773fSEric van Gyzen            Hans Wennborg
7680a48773fSEric van Gyzen            José Gutiérrez de la Concha
7690a48773fSEric van Gyzen            Pedro Monreal Gonzalez
7700a48773fSEric van Gyzen            Rhodri James
7710a48773fSEric van Gyzen            Rolf Ade
7720a48773fSEric van Gyzen            Stephen Groat
7730a48773fSEric van Gyzen                 and
7740a48773fSEric van Gyzen            Core Infrastructure Initiative
7750a48773fSEric van Gyzen
7760a48773fSEric van GyzenRelease 2.2.4 Sat August 19 2017
7770a48773fSEric van Gyzen        Bug fixes:
7780a48773fSEric van Gyzen            #115  Fix copying of partial characters for UTF-8 input
7790a48773fSEric van Gyzen
7800a48773fSEric van Gyzen        Other changes:
7810a48773fSEric van Gyzen            #109  Fix "make check" for non-x86 architectures that default
7820a48773fSEric van Gyzen                    to unsigned type char (-128..127 rather than 0..255)
7830a48773fSEric van Gyzen            #109  coverage.sh: Cover -funsigned-char
7840a48773fSEric van Gyzen                  Autotools: Introduce --without-xmlwf argument
7850a48773fSEric van Gyzen             #65  Autotools: Replace handwritten Makefile with GNU Automake
7860a48773fSEric van Gyzen             #43  CMake: Auto-detect high quality entropy extractors, add new
7870a48773fSEric van Gyzen                    option USE_libbsd=ON to use arc4random_buf of libbsd
7880a48773fSEric van Gyzen             #74  CMake: Add -fno-strict-aliasing only where supported
7890a48773fSEric van Gyzen            #114  CMake: Always honor manually set BUILD_* options
7900a48773fSEric van Gyzen            #114  CMake: Compile man page if docbook2x-man is available, only
7910a48773fSEric van Gyzen            #117  Include file tests/xmltest.log.expected in source tarball
7920a48773fSEric van Gyzen                    (required for "make run-xmltest")
7930a48773fSEric van Gyzen            #117  Include (existing) Visual Studio 2013 files in source tarball
7940a48773fSEric van Gyzen                  Improve test suite error output
7950a48773fSEric van Gyzen            #111  Fix some typos in documentation
7960a48773fSEric van Gyzen                  Version info bumped from 7:5:6 to 7:6:6
7970a48773fSEric van Gyzen
7980a48773fSEric van Gyzen        Special thanks to:
7990a48773fSEric van Gyzen            Jakub Wilk
8000a48773fSEric van Gyzen            Joe Orton
8010a48773fSEric van Gyzen            Lin Tian
8020a48773fSEric van Gyzen            Rolf Eike Beer
8030a48773fSEric van Gyzen
8040a48773fSEric van GyzenRelease 2.2.3 Wed August 2 2017
8050a48773fSEric van Gyzen        Security fixes:
8060a48773fSEric van Gyzen             #82  CVE-2017-11742 -- Windows: Fix DLL hijacking vulnerability
8070a48773fSEric van Gyzen                    using Steve Holme's LoadLibrary wrapper for/of cURL
8080a48773fSEric van Gyzen
8090a48773fSEric van Gyzen        Bug fixes:
8100a48773fSEric van Gyzen             #85  Fix a dangling pointer issue related to realloc
8110a48773fSEric van Gyzen
8120a48773fSEric van Gyzen        Other changes:
8130a48773fSEric van Gyzen                  Increase code coverage
8140a48773fSEric van Gyzen             #91  Linux: Allow getrandom to fail if nonblocking pool has not
8150a48773fSEric van Gyzen                    yet been initialized and read /dev/urandom then, instead.
8160a48773fSEric van Gyzen                    This is in line with what recent Python does.
8170a48773fSEric van Gyzen             #81  Pre-10.7/Lion macOS: Support entropy from arc4random
8180a48773fSEric van Gyzen             #86  Check that a UTF-16 encoding in an XML declaration has the
8190a48773fSEric van Gyzen                    right endianness
8200a48773fSEric van Gyzen        #4 #5 #7  Recover correctly when some reallocations fail
8210a48773fSEric van Gyzen                  Repair "./configure && make" for systems without any
8220a48773fSEric van Gyzen                    provider of high quality entropy
8230a48773fSEric van Gyzen                    and try reading /dev/urandom on those
8240a48773fSEric van Gyzen                  Ensure that user-defined character encodings have converter
8250a48773fSEric van Gyzen                    functions when they are needed
8260a48773fSEric van Gyzen                  Fix mis-leading description of argument -c in xmlwf.1
8270a48773fSEric van Gyzen                  Rely on macro HAVE_ARC4RANDOM_BUF (rather than __CloudABI__)
8280a48773fSEric van Gyzen                    for CloudABI
8290a48773fSEric van Gyzen            #100  Fix use of SIPHASH_MAIN in siphash.h
8300a48773fSEric van Gyzen             #23  Test suite: Fix memory leaks
8310a48773fSEric van Gyzen                  Version info bumped from 7:4:6 to 7:5:6
8320a48773fSEric van Gyzen
8330a48773fSEric van Gyzen        Special thanks to:
8340a48773fSEric van Gyzen            Chanho Park
8350a48773fSEric van Gyzen            Joe Orton
8360a48773fSEric van Gyzen            Pascal Cuoq
8370a48773fSEric van Gyzen            Rhodri James
8380a48773fSEric van Gyzen            Simon McVittie
8390a48773fSEric van Gyzen            Vadim Zeitlin
8400a48773fSEric van Gyzen            Viktor Szakats
8410a48773fSEric van Gyzen                 and
8420a48773fSEric van Gyzen            Core Infrastructure Initiative
8430a48773fSEric van Gyzen
8440a48773fSEric van GyzenRelease 2.2.2 Wed July 12 2017
8450a48773fSEric van Gyzen        Security fixes:
8460a48773fSEric van Gyzen             #43  Protect against compilation without any source of high
8470a48773fSEric van Gyzen                    quality entropy enabled, e.g. with CMake build system;
8480a48773fSEric van Gyzen                    commit ff0207e6076e9828e536b8d9cd45c9c92069b895
8490a48773fSEric van Gyzen             #60  Windows with _UNICODE:
8500a48773fSEric van Gyzen                    Unintended use of LoadLibraryW with a non-wide string
8510a48773fSEric van Gyzen                    resulted in failure to load advapi32.dll and degradation
8520a48773fSEric van Gyzen                    in quality of used entropy when compiled with _UNICODE for
8530a48773fSEric van Gyzen                    Windows; you can launch existing binaries with
8540a48773fSEric van Gyzen                    EXPAT_ENTROPY_DEBUG=1 in the environment to inspect the
8550a48773fSEric van Gyzen                    quality of entropy used during runtime; commits
8560a48773fSEric van Gyzen                    * 95b95032f907ef1cd17ee7a9a1768010a825d61d
8570a48773fSEric van Gyzen                    * 73a5a2e9c081f49f2d775cf7ced864158b68dc80
8580a48773fSEric van Gyzen   [MOX-006]      Fix non-NULL parser parameter validation in XML_Parse;
8590a48773fSEric van Gyzen                    resulted in NULL dereference, previously;
8600a48773fSEric van Gyzen                    commit ac256dafdffc9622ab0dc2c62fcecb0dfcfa71fe
8610a48773fSEric van Gyzen
8620a48773fSEric van Gyzen        Bug fixes:
8630a48773fSEric van Gyzen             #69  Fix improper use of unsigned long long integer literals
8640a48773fSEric van Gyzen
8650a48773fSEric van Gyzen        Other changes:
8660a48773fSEric van Gyzen             #73  Start requiring a C99 compiler
8670a48773fSEric van Gyzen             #49  Fix "==" Bashism in configure script
8680a48773fSEric van Gyzen             #50  Fix too eager getrandom detection for Debian GNU/kFreeBSD
8690a48773fSEric van Gyzen             #52    and macOS
8700a48773fSEric van Gyzen             #51  Address lack of stdint.h in Visual Studio 2003 to 2008
8710a48773fSEric van Gyzen             #58  Address compile warnings
8720a48773fSEric van Gyzen             #68  Fix "./buildconf.sh && ./configure" for some versions
8730a48773fSEric van Gyzen                    of Dash for /bin/sh
8740a48773fSEric van Gyzen             #72  CMake: Ease use of Expat in context of a parent project
8750a48773fSEric van Gyzen                    with multiple CMakeLists.txt files
8760a48773fSEric van Gyzen             #72  CMake: Resolve mistaken executable permissions
8770a48773fSEric van Gyzen             #76  Address compile warning with -DNDEBUG (not recommended!)
8780a48773fSEric van Gyzen             #77  Address compile warning about macro redefinition
8790a48773fSEric van Gyzen
8800a48773fSEric van Gyzen        Special thanks to:
8810a48773fSEric van Gyzen            Alexander Bluhm
8820a48773fSEric van Gyzen            Ben Boeckel
8830a48773fSEric van Gyzen            Cătălin Răceanu
8840a48773fSEric van Gyzen            Kerin Millar
8850a48773fSEric van Gyzen            László Böszörményi
8860a48773fSEric van Gyzen            S. P. Zeidler
8870a48773fSEric van Gyzen            Segev Finer
8880a48773fSEric van Gyzen            Václav Slavík
8890a48773fSEric van Gyzen            Victor Stinner
8900a48773fSEric van Gyzen            Viktor Szakats
8910a48773fSEric van Gyzen                 and
8920a48773fSEric van Gyzen            Radically Open Security
8930a48773fSEric van Gyzen
8940a48773fSEric van GyzenRelease 2.2.1 Sat June 17 2017
8950a48773fSEric van Gyzen        Security fixes:
8960a48773fSEric van Gyzen                  CVE-2017-9233 -- External entity infinite loop DoS
8970a48773fSEric van Gyzen                    Details: https://libexpat.github.io/doc/cve-2017-9233/
8980a48773fSEric van Gyzen                    Commit c4bf96bb51dd2a1b0e185374362ee136fe2c9d7f
8990a48773fSEric van Gyzen   [MOX-002]      CVE-2016-9063 -- Detect integer overflow; commit
9000a48773fSEric van Gyzen                    d4f735b88d9932bd5039df2335eefdd0723dbe20
9010a48773fSEric van Gyzen                    (Fixed version of existing downstream patches!)
9020a48773fSEric van Gyzen   (SF.net) #539  Fix regression from fix to CVE-2016-0718 cutting off
9030a48773fSEric van Gyzen                    longer tag names; commits
9040a48773fSEric van Gyzen                    * 896b6c1fd3b842f377d1b62135dccf0a579cf65d
9050a48773fSEric van Gyzen                    * af507cef2c93cb8d40062a0abe43a4f4e9158fb2
9060a48773fSEric van Gyzen             #16    * 0dbbf43fdb20f593ddf4fa1ff67288000dd4a7fd
9070a48773fSEric van Gyzen             #25  More integer overflow detection (function poolGrow); commits
9080a48773fSEric van Gyzen                    * 810b74e4703dcfdd8f404e3cb177d44684775143
9090a48773fSEric van Gyzen                    * 44178553f3539ce69d34abee77a05e879a7982ac
9100a48773fSEric van Gyzen   [MOX-002]      Detect overflow from len=INT_MAX call to XML_Parse; commits
9110a48773fSEric van Gyzen                    * 4be2cb5afcc018d996f34bbbce6374b7befad47f
9120a48773fSEric van Gyzen                    * 7e5b71b748491b6e459e5c9a1d090820f94544d8
9130a48773fSEric van Gyzen   [MOX-005] #30  Use high quality entropy for hash initialization:
9140a48773fSEric van Gyzen                    * arc4random_buf on BSD, systems with libbsd
9150a48773fSEric van Gyzen                      (when configured with --with-libbsd), CloudABI
9160a48773fSEric van Gyzen                    * RtlGenRandom on Windows XP / Server 2003 and later
9170a48773fSEric van Gyzen                    * getrandom on Linux 3.17+
9180a48773fSEric van Gyzen                    In a way, that's still part of CVE-2016-5300.
9190a48773fSEric van Gyzen                    https://github.com/libexpat/libexpat/pull/30/commits
9200a48773fSEric van Gyzen   [MOX-005]      For the low quality entropy extraction fallback code,
9210a48773fSEric van Gyzen                    the parser instance address can no longer leak, commit
9220a48773fSEric van Gyzen                    04ad658bd3079dd15cb60fc67087900f0ff4b083
9230a48773fSEric van Gyzen   [MOX-003]      Prevent use of uninitialised variable; commit
9240a48773fSEric van Gyzen   [MOX-004]        a4dc944f37b664a3ca7199c624a98ee37babdb4b
9250a48773fSEric van Gyzen                  Add missing parameter validation to public API functions
9260a48773fSEric van Gyzen                    and dedicated error code XML_ERROR_INVALID_ARGUMENT:
9270a48773fSEric van Gyzen   [MOX-006]        * NULL checks; commits
9280a48773fSEric van Gyzen                      * d37f74b2b7149a3a95a680c4c4cd2a451a51d60a (merge/many)
9290a48773fSEric van Gyzen                      * 9ed727064b675b7180c98cb3d4f75efba6966681
9300a48773fSEric van Gyzen                      * 6a747c837c50114dfa413994e07c0ba477be4534
9310a48773fSEric van Gyzen                    * Negative length (XML_Parse); commit
9320a48773fSEric van Gyzen   [MOX-002]          70db8d2538a10f4c022655d6895e4c3e78692e7f
9330a48773fSEric van Gyzen   [MOX-001] #35  Change hash algorithm to William Ahern's version of SipHash
9340a48773fSEric van Gyzen                    to go further with fixing CVE-2012-0876.
9350a48773fSEric van Gyzen                    https://github.com/libexpat/libexpat/pull/39/commits
9360a48773fSEric van Gyzen
9370a48773fSEric van Gyzen        Bug fixes:
9380a48773fSEric van Gyzen             #32  Fix sharing of hash salt across parsers;
9390a48773fSEric van Gyzen                    relevant where XML_ExternalEntityParserCreate is called
9400a48773fSEric van Gyzen                    prior to XML_Parse, in particular (e.g. FBReader)
9410a48773fSEric van Gyzen             #28  xmlwf: Auto-disable use of memory-mapping (and parsing
9420a48773fSEric van Gyzen                    as a single chunk) for files larger than ~1 GB (2^30 bytes)
9430a48773fSEric van Gyzen                    rather than failing with error "out of memory"
9440a48773fSEric van Gyzen              #3  Fix double free after malloc failure in DTD code; commit
9450a48773fSEric van Gyzen                    7ae9c3d3af433cd4defe95234eae7dc8ed15637f
9460a48773fSEric van Gyzen             #17  Fix memory leak on parser error for unbound XML attribute
9470a48773fSEric van Gyzen                    prefix with new namespaces defined in the same tag;
9480a48773fSEric van Gyzen                    found by Google's OSS-Fuzz; commits
9490a48773fSEric van Gyzen                    * 16f87daae5a16132e479e4f71862128c7a915c73
9500a48773fSEric van Gyzen                    * b47dbc9745932c160893d433220e462bd605f8cd
9510a48773fSEric van Gyzen                  xmlwf on Windows: Add missing calls to CloseHandle
9520a48773fSEric van Gyzen
9530a48773fSEric van Gyzen        New features:
9540a48773fSEric van Gyzen             #30  Introduced environment switch EXPAT_ENTROPY_DEBUG=1
9550a48773fSEric van Gyzen                    for runtime debugging of entropy extraction
9560a48773fSEric van Gyzen
9570a48773fSEric van Gyzen        Other changes:
9580a48773fSEric van Gyzen                  Increase code coverage
9590a48773fSEric van Gyzen             #33  Reject use of XML_UNICODE_WCHAR_T with sizeof(wchar_t) != 2;
9600a48773fSEric van Gyzen                    XML_UNICODE_WCHAR_T was never meant to be used outside
9610a48773fSEric van Gyzen                    of Windows; 4-byte wchar_t is common on Linux
9620a48773fSEric van Gyzen   (SF.net) #538  Start using -fno-strict-aliasing
9630a48773fSEric van Gyzen   (SF.net) #540  Support compilation against cloudlibc of CloudABI
9640a48773fSEric van Gyzen                  Allow MinGW cross-compilation
9650a48773fSEric van Gyzen   (SF.net) #534  CMake: Introduce option "BUILD_doc" (enabled by default)
9660a48773fSEric van Gyzen                    to bypass compilation of the xmlwf.1 man page
9670a48773fSEric van Gyzen   (SF.net)  pr2  CMake: Introduce option "INSTALL" (enabled by default)
9680a48773fSEric van Gyzen                    to bypass installation of expat files
9690a48773fSEric van Gyzen                  CMake: Fix ninja support
9700a48773fSEric van Gyzen                  Autotools: Add parameters --enable-xml-context [COUNT]
9710a48773fSEric van Gyzen                    and --disable-xml-context; default of context of 1024
9720a48773fSEric van Gyzen                    bytes enabled unchanged
9730a48773fSEric van Gyzen             #14  Drop AmigaOS 4.x code and includes
9740a48773fSEric van Gyzen             #14  Drop ancient build systems:
9750a48773fSEric van Gyzen                    * Borland C++ Builder
9760a48773fSEric van Gyzen                    * OpenVMS
9770a48773fSEric van Gyzen                    * Open Watcom
9780a48773fSEric van Gyzen                    * Visual Studio 6.0
9790a48773fSEric van Gyzen                    * Pre-X Mac OS (MPW Makefile)
9800a48773fSEric van Gyzen                    If you happen to rely on some of these, please get in
9810a48773fSEric van Gyzen                    touch for joining with maintenance.
9820a48773fSEric van Gyzen             #10  Move from WIN32 to _WIN32
9830a48773fSEric van Gyzen             #13  Fix "make run-xmltest" order instability
9840a48773fSEric van Gyzen                  Address compile warnings
9850a48773fSEric van Gyzen                  Bump version info from 7:2:6 to 7:3:6
9860a48773fSEric van Gyzen                  Add AUTHORS file
9870a48773fSEric van Gyzen
9880a48773fSEric van Gyzen        Infrastructure:
9890a48773fSEric van Gyzen              #1  Migrate from SourceForge to GitHub (except downloads):
9900a48773fSEric van Gyzen                    https://github.com/libexpat/
9910a48773fSEric van Gyzen              #1  Re-create http://libexpat.org/ project website
9920a48773fSEric van Gyzen                  Start utilizing Travis CI
9930a48773fSEric van Gyzen
9940a48773fSEric van Gyzen        Special thanks to:
9950a48773fSEric van Gyzen            Andy Wang
9960a48773fSEric van Gyzen            Don Lewis
9970a48773fSEric van Gyzen            Ed Schouten
9980a48773fSEric van Gyzen            Karl Waclawek
9990a48773fSEric van Gyzen            Pascal Cuoq
10000a48773fSEric van Gyzen            Rhodri James
10010a48773fSEric van Gyzen            Sergei Nikulov
10020a48773fSEric van Gyzen            Tobias Taschner
10030a48773fSEric van Gyzen            Viktor Szakats
10040a48773fSEric van Gyzen                 and
10050a48773fSEric van Gyzen            Core Infrastructure Initiative
10060a48773fSEric van Gyzen            Mozilla Foundation (MOSS Track 3: Secure Open Source)
10070a48773fSEric van Gyzen            Radically Open Security
10080a48773fSEric van Gyzen
1009be8aff81SXin LIRelease 2.2.0 Tue June 21 2016
1010be8aff81SXin LI        Security fixes:
1011be8aff81SXin LI            #537  CVE-2016-0718 -- Fix crash on malformed input
1012be8aff81SXin LI                  CVE-2016-4472 -- Improve insufficient fix to CVE-2015-1283 /
1013be8aff81SXin LI                                   CVE-2015-2716 introduced with Expat 2.1.1
1014be8aff81SXin LI            #499  CVE-2016-5300 -- Use more entropy for hash initialization
1015be8aff81SXin LI                                   than the original fix to CVE-2012-0876
1016be8aff81SXin LI            #519  CVE-2012-6702 -- Resolve troublesome internal call to srand
1017be8aff81SXin LI                                   that was introduced with Expat 2.1.0
1018be8aff81SXin LI                                   when addressing CVE-2012-0876 (issue #496)
1019be8aff81SXin LI
1020be8aff81SXin LI        Bug fixes:
1021be8aff81SXin LI                  Fix uninitialized reads of size 1
1022be8aff81SXin LI                    (e.g. in little2_updatePosition)
1023be8aff81SXin LI                  Fix detection of UTF-8 character boundaries
1024be8aff81SXin LI
1025be8aff81SXin LI        Other changes:
1026be8aff81SXin LI            #532  Fix compilation for Visual Studio 2010 (keyword "C99")
1027be8aff81SXin LI                  Autotools: Resolve use of "$<" to better support bmake
1028be8aff81SXin LI                  Autotools: Add QA script "qa.sh" (and make target "qa")
1029be8aff81SXin LI                  Autotools: Respect CXXFLAGS if given
1030be8aff81SXin LI                  Autotools: Fix "make run-xmltest"
1031be8aff81SXin LI                  Autotools: Have "make run-xmltest" check for expected output
1032be8aff81SXin LI             p90  CMake: Fix static build (BUILD_shared=OFF) on Windows
1033be8aff81SXin LI            #536  CMake: Add soversion, support -DNO_SONAME=yes to bypass
1034be8aff81SXin LI            #323  CMake: Add suffix "d" to differentiate debug from release
1035be8aff81SXin LI                  CMake: Define WIN32 with CMake on Windows
1036be8aff81SXin LI                  Annotate memory allocators for GCC
1037be8aff81SXin LI                  Address all currently known compile warnings
1038be8aff81SXin LI                  Make sure that API symbols remain visible despite
1039be8aff81SXin LI                    -fvisibility=hidden
1040be8aff81SXin LI                  Remove executable flag from source files
1041be8aff81SXin LI                  Resolve COMPILED_FROM_DSP in favor of WIN32
1042be8aff81SXin LI
1043be8aff81SXin LI        Special thanks to:
1044be8aff81SXin LI            Björn Lindahl
1045be8aff81SXin LI            Christian Heimes
1046be8aff81SXin LI            Cristian Rodríguez
1047be8aff81SXin LI            Daniel Krügler
1048be8aff81SXin LI            Gustavo Grieco
1049be8aff81SXin LI            Karl Waclawek
1050be8aff81SXin LI            László Böszörményi
1051be8aff81SXin LI            Marco Grassi
1052be8aff81SXin LI            Pascal Cuoq
1053be8aff81SXin LI            Sergei Nikulov
1054be8aff81SXin LI            Thomas Beutlich
1055be8aff81SXin LI            Warren Young
1056be8aff81SXin LI            Yann Droneaud
1057be8aff81SXin LI
1058be8aff81SXin LIRelease 2.1.1 Sat March 12 2016
1059be8aff81SXin LI        Security fixes:
1060be8aff81SXin LI            #582: CVE-2015-1283 - Multiple integer overflows in XML_GetBuffer
1061be8aff81SXin LI
1062be8aff81SXin LI        Bug fixes:
1063be8aff81SXin LI            #502: Fix potential null pointer dereference
1064be8aff81SXin LI            #520: Symbol XML_SetHashSalt was not exported
1065be8aff81SXin LI            Output of "xmlwf -h" was incomplete
1066be8aff81SXin LI
1067be8aff81SXin LI        Other changes:
1068be8aff81SXin LI            #503: Document behavior of calling XML_SetHashSalt with salt 0
1069be8aff81SXin LI            Minor improvements to man page xmlwf(1)
1070be8aff81SXin LI            Improvements to the experimental CMake build system
1071be8aff81SXin LI            libtool now invoked with --verbose
1072be8aff81SXin LI
1073e3466a89SXin LIRelease 2.1.0 Sat March 24 2012
10740a48773fSEric van Gyzen        - Security fixes:
10750a48773fSEric van Gyzen          #2958794: CVE-2012-1148 - Memory leak in poolGrow.
10760a48773fSEric van Gyzen          #2895533: CVE-2012-1147 - Resource leak in readfilemap.c.
10770a48773fSEric van Gyzen          #3496608: CVE-2012-0876 - Hash DOS attack.
10780a48773fSEric van Gyzen          #2894085: CVE-2009-3560 - Buffer over-read and crash in big2_toUtf8().
10790a48773fSEric van Gyzen          #1990430: CVE-2009-3720 - Parser crash with special UTF-8 sequences.
1080e3466a89SXin LI        - Bug Fixes:
1081e3466a89SXin LI          #1742315: Harmful XML_ParserCreateNS suggestion.
1082e3466a89SXin LI          #1785430: Expat build fails on linux-amd64 with gcc version>=4.1 -O3.
1083e3466a89SXin LI          #1983953, 2517952, 2517962, 2649838:
1084e3466a89SXin LI                Build modifications using autoreconf instead of buildconf.sh.
1085e3466a89SXin LI          #2815947, #2884086: OBJEXT and EXEEXT support while building.
1086e3466a89SXin LI          #2517938: xmlwf should return non-zero exit status if not well-formed.
1087e3466a89SXin LI          #2517946: Wrong statement about XMLDecl in xmlwf.1 and xmlwf.sgml.
1088e3466a89SXin LI          #2855609: Dangling positionPtr after error.
1089e3466a89SXin LI          #2990652: CMake support.
1090e3466a89SXin LI          #3010819: UNEXPECTED_STATE with a trailing "%" in entity value.
10910a48773fSEric van Gyzen          #3206497: Uninitialized memory returned from XML_Parse.
1092e3466a89SXin LI          #3287849: make check fails on mingw-w64.
1093e3466a89SXin LI        - Patches:
1094e3466a89SXin LI          #1749198: pkg-config support.
1095e3466a89SXin LI          #3010222: Fix for bug #3010819.
1096e3466a89SXin LI          #3312568: CMake support.
1097e3466a89SXin LI          #3446384: Report byte offsets for attr names and values.
1098e3466a89SXin LI        - New Features / API changes:
1099be8aff81SXin LI          Added new API member XML_SetHashSalt() that allows setting an initial
1100e3466a89SXin LI                value (salt) for hash calculations. This is part of the fix for
1101e3466a89SXin LI                bug #3496608 to randomize hash parameters.
1102e3466a89SXin LI          When compiled with XML_ATTR_INFO defined, adds new API member
1103e3466a89SXin LI                XML_GetAttributeInfo() that allows retrieving the byte
1104e3466a89SXin LI                offsets for attribute names and values (patch #3446384).
1105e3466a89SXin LI          Added CMake build system.
1106e3466a89SXin LI                See bug #2990652 and patch #3312568.
1107e3466a89SXin LI          Added run-benchmark target to Makefile.in - relies on testdata module
1108e3466a89SXin LI                present in the same relative location as in the repository.
1109e3466a89SXin LI
1110220ed979SColeman KaneRelease 2.0.1 Tue June 5 2007
1111e3466a89SXin LI        - Fixed bugs #1515266, #1515600: The character data handler's calling
1112220ed979SColeman Kane          of XML_StopParser() was not handled properly; if the parser was
1113220ed979SColeman Kane          stopped and the handler set to NULL, the parser would segfault.
1114220ed979SColeman Kane        - Fixed bug #1690883: Expat failed on EBCDIC systems as it assumed
1115220ed979SColeman Kane          some character constants to be ASCII encoded.
1116220ed979SColeman Kane        - Minor cleanups of the test harness.
1117220ed979SColeman Kane        - Fixed xmlwf bug #1513566: "out of memory" error on file size zero.
1118220ed979SColeman Kane        - Fixed outline.c bug #1543233: missing a final XML_ParserFree() call.
1119220ed979SColeman Kane        - Fixes and improvements for Windows platform:
1120e3466a89SXin LI          bugs #1409451, #1476160, #1548182, #1602769, #1717322.
1121220ed979SColeman Kane        - Build fixes for various platforms:
1122220ed979SColeman Kane          HP-UX, Tru64, Solaris 9: patch #1437840, bug #1196180.
1123220ed979SColeman Kane          All Unix: #1554618 (refreshed config.sub/config.guess).
1124220ed979SColeman Kane                    #1490371, #1613457: support both, DESTDIR and INSTALL_ROOT,
1125220ed979SColeman Kane                    without relying on GNU-Make specific features.
1126220ed979SColeman Kane          #1647805: Patched configure.in to work better with Intel compiler.
1127220ed979SColeman Kane        - Fixes to Makefile.in to have make check work correctly:
1128220ed979SColeman Kane          bugs #1408143, #1535603, #1536684.
1129220ed979SColeman Kane        - Added Open Watcom support: patch #1523242.
1130220ed979SColeman Kane
1131220ed979SColeman KaneRelease 2.0.0 Wed Jan 11 2006
1132220ed979SColeman Kane        - We no longer use the "check" library for C unit testing; we
1133220ed979SColeman Kane          always use the (partial) internal implementation of the API.
1134220ed979SColeman Kane        - Report XML_NS setting via XML_GetFeatureList().
1135220ed979SColeman Kane        - Fixed headers for use from C++.
1136220ed979SColeman Kane        - XML_GetCurrentLineNumber() and  XML_GetCurrentColumnNumber()
1137220ed979SColeman Kane          now return unsigned integers.
1138220ed979SColeman Kane        - Added XML_LARGE_SIZE switch to enable 64-bit integers for
1139220ed979SColeman Kane          byte indexes and line/column numbers.
1140220ed979SColeman Kane        - Updated to use libtool 1.5.22 (the most recent).
1141220ed979SColeman Kane        - Added support for AmigaOS.
1142e3466a89SXin LI        - Some mostly minor bug fixes. SF issues include: #1006708,
1143e3466a89SXin LI          #1021776, #1023646, #1114960, #1156398, #1221160, #1271642.
1144220ed979SColeman Kane
1145220ed979SColeman KaneRelease 1.95.8 Fri Jul 23 2004
1146220ed979SColeman Kane        - Major new feature: suspend/resume.  Handlers can now request
1147220ed979SColeman Kane          that a parse be suspended for later resumption or aborted
1148220ed979SColeman Kane          altogether.  See "Temporarily Stopping Parsing" in the
1149220ed979SColeman Kane          documentation for more details.
1150220ed979SColeman Kane        - Some mostly minor bug fixes, but compilation should no
1151220ed979SColeman Kane          longer generate warnings on most platforms.  SF issues
1152e3466a89SXin LI          include: #827319, #840173, #846309, #888329, #896188, #923913,
1153e3466a89SXin LI          #928113, #961698, #985192.
1154220ed979SColeman Kane
1155220ed979SColeman KaneRelease 1.95.7 Mon Oct 20 2003
1156220ed979SColeman Kane        - Fixed enum XML_Status issue (reported on SourceForge many
1157220ed979SColeman Kane          times), so compilers that are properly picky will be happy.
1158220ed979SColeman Kane        - Introduced an XMLCALL macro to control the calling
1159220ed979SColeman Kane          convention used by the Expat API; this macro should be used
1160220ed979SColeman Kane          to annotate prototypes and definitions of callback
1161220ed979SColeman Kane          implementations in code compiled with a calling convention
1162220ed979SColeman Kane          other than the default convention for the host platform.
1163220ed979SColeman Kane        - Improved ability to build without the configure-generated
1164220ed979SColeman Kane          expat_config.h header.  This is useful for applications
1165220ed979SColeman Kane          which embed Expat rather than linking in the library.
1166e3466a89SXin LI        - Fixed a variety of bugs: see SF issues #458907, #609603,
1167e3466a89SXin LI          #676844, #679754, #692878, #692964, #695401, #699323, #699487,
1168e3466a89SXin LI          #820946.
1169220ed979SColeman Kane        - Improved hash table lookups.
1170220ed979SColeman Kane        - Added more regression tests and improved documentation.
1171220ed979SColeman Kane
1172220ed979SColeman KaneRelease 1.95.6 Tue Jan 28 2003
1173220ed979SColeman Kane        - Added XML_FreeContentModel().
1174220ed979SColeman Kane        - Added XML_MemMalloc(), XML_MemRealloc(), XML_MemFree().
1175e3466a89SXin LI        - Fixed a variety of bugs: see SF issues #615606, #616863,
1176e3466a89SXin LI          #618199, #653180, #673791.
1177220ed979SColeman Kane        - Enhanced the regression test suite.
1178e3466a89SXin LI        - Man page improvements: includes SF issue #632146.
1179220ed979SColeman Kane
11805bb6a25fSPoul-Henning KampRelease 1.95.5 Fri Sep 6 2002
11815bb6a25fSPoul-Henning Kamp        - Added XML_UseForeignDTD() for improved SAX2 support.
11825bb6a25fSPoul-Henning Kamp        - Added XML_GetFeatureList().
11835bb6a25fSPoul-Henning Kamp        - Defined XML_Bool type and the values XML_TRUE and XML_FALSE.
11845bb6a25fSPoul-Henning Kamp        - Use an incomplete struct instead of a void* for the parser
11855bb6a25fSPoul-Henning Kamp          (may not retain).
11865bb6a25fSPoul-Henning Kamp        - Fixed UTF-8 decoding bug that caused legal UTF-8 to be rejected.
11875bb6a25fSPoul-Henning Kamp        - Finally fixed bug where default handler would report DTD
11885bb6a25fSPoul-Henning Kamp          events that were already handled by another handler.
1189220ed979SColeman Kane          Initial patch contributed by Darryl Miles.
11905bb6a25fSPoul-Henning Kamp        - Removed unnecessary DllMain() function that caused static
11915bb6a25fSPoul-Henning Kamp          linking into a DLL to be difficult.
11925bb6a25fSPoul-Henning Kamp        - Added VC++ projects for building static libraries.
11935bb6a25fSPoul-Henning Kamp        - Reduced line-length for all source code and headers to be
11945bb6a25fSPoul-Henning Kamp          no longer than 80 characters, to help with AS/400 support.
11955bb6a25fSPoul-Henning Kamp        - Reduced memory copying during parsing (SF patch #600964).
1196e3466a89SXin LI        - Fixed a variety of bugs: see SF issues #580793, #434664,
1197e3466a89SXin LI          #483514, #580503, #581069, #584041, #584183, #584832, #585537,
1198e3466a89SXin LI          #596555, #596678, #598352, #598944, #599715, #600479, #600971.
11995bb6a25fSPoul-Henning Kamp
12005bb6a25fSPoul-Henning KampRelease 1.95.4 Fri Jul 12 2002
12015bb6a25fSPoul-Henning Kamp        - Added support for VMS, contributed by Craig Berry.  See
12025bb6a25fSPoul-Henning Kamp          vms/README.vms for more information.
12035bb6a25fSPoul-Henning Kamp        - Added Mac OS (classic) support, with a makefile for MPW,
12045bb6a25fSPoul-Henning Kamp          contributed by Thomas Wegner and Daryle Walker.
12055bb6a25fSPoul-Henning Kamp        - Added Borland C++ Builder 5 / BCC 5.5 support, contributed
12065bb6a25fSPoul-Henning Kamp          by Patrick McConnell (SF patch #538032).
1207e3466a89SXin LI        - Fixed a variety of bugs: see SF issues #441449, #563184,
1208e3466a89SXin LI          #564342, #566334, #566901, #569461, #570263, #575168, #579196.
12095bb6a25fSPoul-Henning Kamp        - Made skippedEntityHandler conform to SAX2 (see source comment)
12105bb6a25fSPoul-Henning Kamp        - Re-implemented WFC: Entity Declared from XML 1.0 spec and
12115bb6a25fSPoul-Henning Kamp          added a new error "entity declared in parameter entity":
1212e3466a89SXin LI          see SF bug report #569461 and SF patch #578161
12135bb6a25fSPoul-Henning Kamp        - Re-implemented section 5.1 from XML 1.0 spec:
1214e3466a89SXin LI          see SF bug report #570263 and SF patch #578161
12155bb6a25fSPoul-Henning Kamp
12165bb6a25fSPoul-Henning KampRelease 1.95.3 Mon Jun 3 2002
12175bb6a25fSPoul-Henning Kamp        - Added a project to the MSVC workspace to create a wchar_t
12185bb6a25fSPoul-Henning Kamp          version of the library; the DLLs are named libexpatw.dll.
12195bb6a25fSPoul-Henning Kamp        - Changed the name of the Windows DLLs from expat.dll to
12205bb6a25fSPoul-Henning Kamp          libexpat.dll; this fixes SF bug #432456.
12215bb6a25fSPoul-Henning Kamp        - Added the XML_ParserReset() API function.
12225bb6a25fSPoul-Henning Kamp        - Fixed XML_SetReturnNSTriplet() to work for element names.
12235bb6a25fSPoul-Henning Kamp        - Made the XML_UNICODE builds usable (thanks, Karl!).
12245bb6a25fSPoul-Henning Kamp        - Allow xmlwf to read from standard input.
12255bb6a25fSPoul-Henning Kamp        - Install a man page for xmlwf on Unix systems.
1226e3466a89SXin LI        - Fixed many bugs; see SF bug reports #231864, #461380, #464837,
1227e3466a89SXin LI          #466885, #469226, #477667, #484419, #487840, #494749, #496505,
1228e3466a89SXin LI          #547350.  Other bugs which we can't test as easily may also
12295bb6a25fSPoul-Henning Kamp          have been fixed, especially in the area of build support.
12305bb6a25fSPoul-Henning Kamp
12315bb6a25fSPoul-Henning KampRelease 1.95.2 Fri Jul 27 2001
12325bb6a25fSPoul-Henning Kamp        - More changes to make MSVC happy with the build; add a single
12335bb6a25fSPoul-Henning Kamp          workspace to support both the library and xmlwf application.
12345bb6a25fSPoul-Henning Kamp        - Added a Windows installer for Windows users; includes
12355bb6a25fSPoul-Henning Kamp          xmlwf.exe.
12365bb6a25fSPoul-Henning Kamp        - Added compile-time constants that can be used to determine the
12375bb6a25fSPoul-Henning Kamp          Expat version
12385bb6a25fSPoul-Henning Kamp        - Removed a lot of GNU-specific dependencies to aide portability
12395bb6a25fSPoul-Henning Kamp          among the various Unix flavors.
12405bb6a25fSPoul-Henning Kamp        - Fix the UTF-8 BOM bug.
12415bb6a25fSPoul-Henning Kamp        - Cleaned up warning messages for several compilers.
12425bb6a25fSPoul-Henning Kamp        - Added the -Wall, -Wstrict-prototypes options for GCC.
12435bb6a25fSPoul-Henning Kamp
12445bb6a25fSPoul-Henning KampRelease 1.95.1 Sun Oct 22 15:11:36 EDT 2000
12455bb6a25fSPoul-Henning Kamp        - Changes to get expat to build under Microsoft compiler
12465bb6a25fSPoul-Henning Kamp        - Removed all aborts and instead return an UNEXPECTED_STATE error.
12475bb6a25fSPoul-Henning Kamp        - Fixed a bug where a stray '%' in an entity value would cause an
12485bb6a25fSPoul-Henning Kamp          abort.
12495bb6a25fSPoul-Henning Kamp        - Defined XML_SetEndNamespaceDeclHandler. Thanks to Darryl Miles for
12505bb6a25fSPoul-Henning Kamp          finding this oversight.
12515bb6a25fSPoul-Henning Kamp        - Changed default patterns in lib/Makefile.in to fit non-GNU makes
12525bb6a25fSPoul-Henning Kamp          Thanks to robin@unrated.net for reporting and providing an
12535bb6a25fSPoul-Henning Kamp          account to test on.
12545bb6a25fSPoul-Henning Kamp        - The reference had the wrong label for XML_SetStartNamespaceDecl.
12555bb6a25fSPoul-Henning Kamp          Reported by an anonymous user.
12565bb6a25fSPoul-Henning Kamp
12575bb6a25fSPoul-Henning KampRelease 1.95.0 Fri Sep 29 2000
12585bb6a25fSPoul-Henning Kamp        - XML_ParserCreate_MM
12595bb6a25fSPoul-Henning Kamp                Allows you to set a memory management suite to replace the
12605bb6a25fSPoul-Henning Kamp                standard malloc,realloc, and free.
12615bb6a25fSPoul-Henning Kamp        - XML_SetReturnNSTriplet
12625bb6a25fSPoul-Henning Kamp                If you turn this feature on when namespace processing is in
12635bb6a25fSPoul-Henning Kamp                effect, then qualified, prefixed element and attribute names
12645bb6a25fSPoul-Henning Kamp                are returned as "uri|name|prefix" where '|' is whatever
12655bb6a25fSPoul-Henning Kamp                separator character is used in namespace processing.
12665bb6a25fSPoul-Henning Kamp        - Merged in features from perl-expat
12675bb6a25fSPoul-Henning Kamp                o XML_SetElementDeclHandler
12685bb6a25fSPoul-Henning Kamp                o XML_SetAttlistDeclHandler
12695bb6a25fSPoul-Henning Kamp                o XML_SetXmlDeclHandler
12705bb6a25fSPoul-Henning Kamp                o XML_SetEntityDeclHandler
12715bb6a25fSPoul-Henning Kamp                o StartDoctypeDeclHandler takes 3 additional parameters:
12725bb6a25fSPoul-Henning Kamp                        sysid, pubid, has_internal_subset
12735bb6a25fSPoul-Henning Kamp                o Many paired handler setters (like XML_SetElementHandler)
12745bb6a25fSPoul-Henning Kamp                  now have corresponding individual handler setters
12755bb6a25fSPoul-Henning Kamp                o XML_GetInputContext for getting the input context of
12765bb6a25fSPoul-Henning Kamp                  the current parse position.
12775bb6a25fSPoul-Henning Kamp        - Added reference material
12785bb6a25fSPoul-Henning Kamp        - Packaged into a distribution that builds a sharable library
1279