xref: /freebsd/contrib/expat/Changes (revision 4543ef516683042d46f3bd3bb8a4f3f746e00499)
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*4543ef51SXin LIRelease 2.6.0 Tue February 6 2024
6*4543ef51SXin LI        Security fixes:
7*4543ef51SXin LI      #789 #814  CVE-2023-52425 -- Fix quadratic runtime issues with big tokens
8*4543ef51SXin LI                   that can cause denial of service, in partial where
9*4543ef51SXin LI                   dealing with compressed XML input.  Applications
10*4543ef51SXin LI                   that parsed a document in one go -- a single call to
11*4543ef51SXin LI                   functions XML_Parse or XML_ParseBuffer -- were not affected.
12*4543ef51SXin LI                   The smaller the chunks/buffers you use for parsing
13*4543ef51SXin LI                   previously, the bigger the problem prior to the fix.
14*4543ef51SXin LI                   Backporters should be careful to no omit parts of
15*4543ef51SXin LI                   pull request #789 and to include earlier pull request #771,
16*4543ef51SXin LI                   in order to not break the fix.
17*4543ef51SXin LI           #777  CVE-2023-52426 -- Fix billion laughs attacks for users
18*4543ef51SXin LI                   compiling *without* XML_DTD defined (which is not common).
19*4543ef51SXin LI                   Users with XML_DTD defined have been protected since
20*4543ef51SXin LI                   Expat >=2.4.0 (and that was CVE-2013-0340 back then).
21*4543ef51SXin LI
22*4543ef51SXin LI        Bug fixes:
23*4543ef51SXin LI            #753  Fix parse-size-dependent "invalid token" error for
24*4543ef51SXin LI                    external entities that start with a byte order mark
25*4543ef51SXin LI            #780  Fix NULL pointer dereference in setContext via
26*4543ef51SXin LI                    XML_ExternalEntityParserCreate for compilation with
27*4543ef51SXin LI                    XML_DTD undefined
28*4543ef51SXin LI       #812 #813  Protect against closing entities out of order
29*4543ef51SXin LI
30*4543ef51SXin LI        Other changes:
31*4543ef51SXin LI            #723  Improve support for arc4random/arc4random_buf
32*4543ef51SXin LI       #771 #788  Improve buffer growth in XML_GetBuffer and XML_Parse
33*4543ef51SXin LI       #761 #770  xmlwf: Support --help and --version
34*4543ef51SXin LI       #759 #770  xmlwf: Support custom buffer size for XML_GetBuffer and read
35*4543ef51SXin LI            #744  xmlwf: Improve language and URL clickability in help output
36*4543ef51SXin LI            #673  examples: Add new example "element_declarations.c"
37*4543ef51SXin LI            #764  Be stricter about macro XML_CONTEXT_BYTES at build time
38*4543ef51SXin LI            #765  Make inclusion to expat_config.h consistent
39*4543ef51SXin LI       #726 #727  Autotools: configure.ac: Support --disable-maintainer-mode
40*4543ef51SXin LI    #678 #705 ..
41*4543ef51SXin LI  #706 #733 #792  Autotools: Sync CMake templates with CMake 3.26
42*4543ef51SXin LI            #795  Autotools: Make installation of shipped man page doc/xmlwf.1
43*4543ef51SXin LI                    independent of docbook2man availability
44*4543ef51SXin LI            #815  Autotools|CMake: Add missing -DXML_STATIC to pkg-config file
45*4543ef51SXin LI                    section "Cflags.private" in order to fix compilation
46*4543ef51SXin LI                    against static libexpat using pkg-config on Windows
47*4543ef51SXin LI       #724 #751  Autotools|CMake: Require a C99 compiler
48*4543ef51SXin LI                    (a de-facto requirement already since Expat 2.2.2 of 2017)
49*4543ef51SXin LI            #793  Autotools|CMake: Fix PACKAGE_BUGREPORT variable
50*4543ef51SXin LI       #750 #786  Autotools|CMake: Make test suite require a C++11 compiler
51*4543ef51SXin LI            #749  CMake: Require CMake >=3.5.0
52*4543ef51SXin LI            #672  CMake: Lowercase off_t and size_t to help a bug in Meson
53*4543ef51SXin LI            #746  CMake: Sort xmlwf sources alphabetically
54*4543ef51SXin LI            #785  CMake|Windows: Fix generation of DLL file version info
55*4543ef51SXin LI            #790  CMake: Build tests/benchmark/benchmark.c as well for
56*4543ef51SXin LI                    a build with -DEXPAT_BUILD_TESTS=ON
57*4543ef51SXin LI       #745 #757  docs: Document the importance of isFinal + adjust tests
58*4543ef51SXin LI                    accordingly
59*4543ef51SXin LI            #736  docs: Improve use of "NULL" and "null"
60*4543ef51SXin LI            #713  docs: Be specific about version of XML (XML 1.0r4)
61*4543ef51SXin LI                    and version of C (C99); (XML 1.0r5 will need a sponsor.)
62*4543ef51SXin LI            #762  docs: reference.html: Promote function XML_ParseBuffer more
63*4543ef51SXin LI            #779  docs: reference.html: Add HTML anchors to XML_* macros
64*4543ef51SXin LI            #760  docs: reference.html: Upgrade to OK.css 1.2.0
65*4543ef51SXin LI       #763 #739  docs: Fix typos
66*4543ef51SXin LI            #696  docs|CI: Use HTTPS URLs instead of HTTP at various places
67*4543ef51SXin LI    #669 #670 ..
68*4543ef51SXin LI    #692 #703 ..
69*4543ef51SXin LI       #733 #772  Address compiler warnings
70*4543ef51SXin LI       #798 #800  Address clang-tidy warnings
71*4543ef51SXin LI       #775 #776  Version info bumped from 9:10:8 (libexpat*.so.1.8.10)
72*4543ef51SXin LI                    to 10:0:9 (libexpat*.so.1.9.0); see https://verbump.de/
73*4543ef51SXin LI                    for what these numbers do
74*4543ef51SXin LI
75*4543ef51SXin LI        Infrastructure:
76*4543ef51SXin LI       #700 #701  docs: Document security policy in file SECURITY.md
77*4543ef51SXin LI            #766  docs: Improve parse buffer variables in-code documentation
78*4543ef51SXin LI    #674 #738 ..
79*4543ef51SXin LI    #740 #747 ..
80*4543ef51SXin LI  #748 #781 #782  Refactor coverage and conformance tests
81*4543ef51SXin LI       #714 #716  Refactor debug level variables to unsigned long
82*4543ef51SXin LI            #671  Improve handling of empty environment variable value
83*4543ef51SXin LI                    in function getDebugLevel (without visible user effect)
84*4543ef51SXin LI    #755 #774 ..
85*4543ef51SXin LI    #758 #783 ..
86*4543ef51SXin LI       #784 #787  tests: Improve test coverage with regard to parse chunk size
87*4543ef51SXin LI  #660 #797 #801  Fuzzing: Improve fuzzing coverage
88*4543ef51SXin LI       #367 #799  Fuzzing|CI: Start running OSS-Fuzz fuzzing regression tests
89*4543ef51SXin LI       #698 #721  CI: Resolve some Travis CI leftovers
90*4543ef51SXin LI            #669  CI: Be robust towards absence of Git tags
91*4543ef51SXin LI       #693 #694  CI: Set permissions to "contents: read" for security
92*4543ef51SXin LI            #709  CI: Pin all GitHub Actions to specific commits for security
93*4543ef51SXin LI            #739  CI: Reject spelling errors using codespell
94*4543ef51SXin LI            #798  CI: Enforce clang-tidy clean code
95*4543ef51SXin LI    #773 #808 ..
96*4543ef51SXin LI       #809 #810  CI: Upgrade Clang from 15 to 18
97*4543ef51SXin LI            #796  CI: Start using Clang's Control Flow Integrity sanitizer
98*4543ef51SXin LI  #675 #720 #722  CI: Adapt to breaking changes in GitHub Actions Ubuntu images
99*4543ef51SXin LI            #689  CI: Adapt to breaking changes in Clang/LLVM Debian packaging
100*4543ef51SXin LI            #763  CI: Adapt to breaking changes in codespell
101*4543ef51SXin LI            #803  CI: Adapt to breaking changes in Cppcheck
102*4543ef51SXin LI
103*4543ef51SXin LI        Special thanks to:
104*4543ef51SXin LI            Ivan Galkin
105*4543ef51SXin LI            Joyce Brum
106*4543ef51SXin LI            Philippe Antoine
107*4543ef51SXin LI            Rhodri James
108*4543ef51SXin LI            Snild Dolkow
109*4543ef51SXin LI            spookyahell
110*4543ef51SXin LI            Steven Garske
111*4543ef51SXin LI                 and
112*4543ef51SXin LI            Clang AddressSanitizer
113*4543ef51SXin LI            Clang UndefinedBehaviorSanitizer
114*4543ef51SXin LI            codespell
115*4543ef51SXin LI            GCC Farm Project
116*4543ef51SXin LI            OSS-Fuzz
117*4543ef51SXin LI            Sony Mobile
118*4543ef51SXin LI
119dc58b3fcSXin LIRelease 2.5.0 Tue October 25 2022
120dc58b3fcSXin LI        Security fixes:
121dc58b3fcSXin LI  #616 #649 #650  CVE-2022-43680 -- Fix heap use-after-free after overeager
122dc58b3fcSXin LI                    destruction of a shared DTD in function
123dc58b3fcSXin LI                    XML_ExternalEntityParserCreate in out-of-memory situations.
124dc58b3fcSXin LI                    Expected impact is denial of service or potentially
125dc58b3fcSXin LI                    arbitrary code execution.
126dc58b3fcSXin LI
127dc58b3fcSXin LI        Bug fixes:
128*4543ef51SXin LI       #612 #645  Fix corruption from undefined entities
129dc58b3fcSXin LI       #613 #654  Fix case when parsing was suspended while processing nested
130dc58b3fcSXin LI                    entities
131dc58b3fcSXin LI  #616 #652 #653  Stop leaking opening tag bindings after a closing tag
132dc58b3fcSXin LI                    mismatch error where a parser is reset through
133dc58b3fcSXin LI                    XML_ParserReset and then reused to parse
134dc58b3fcSXin LI            #656  CMake: Fix generation of pkg-config file
135dc58b3fcSXin LI            #658  MinGW|CMake: Fix static library name
136dc58b3fcSXin LI
137dc58b3fcSXin LI        Other changes:
138dc58b3fcSXin LI            #663  Protect header expat_config.h from multiple inclusion
139dc58b3fcSXin LI            #666  examples: Make use of XML_GetBuffer and be more
140dc58b3fcSXin LI                    consistent across examples
141dc58b3fcSXin LI            #648  Address compiler warnings
142dc58b3fcSXin LI       #667 #668  Version info bumped from 9:9:8 to 9:10:8;
143dc58b3fcSXin LI                    see https://verbump.de/ for what these numbers do
144dc58b3fcSXin LI
145dc58b3fcSXin LI        Special thanks to:
146dc58b3fcSXin LI            Jann Horn
147dc58b3fcSXin LI            Mark Brand
148dc58b3fcSXin LI            Osyotr
149dc58b3fcSXin LI            Rhodri James
150dc58b3fcSXin LI                 and
151dc58b3fcSXin LI            Google Project Zero
152dc58b3fcSXin LI
15371f0c44aSXin LIRelease 2.4.9 Tue September 20 2022
15471f0c44aSXin LI        Security fixes:
15571f0c44aSXin LI       #629 #640  CVE-2022-40674 -- Heap use-after-free vulnerability in
15671f0c44aSXin LI                    function doContent. Expected impact is denial of service
15771f0c44aSXin LI                    or potentially arbitrary code execution.
15871f0c44aSXin LI
15971f0c44aSXin LI        Bug fixes:
16071f0c44aSXin LI            #634  MinGW: Fix mis-compilation for -D__USE_MINGW_ANSI_STDIO=0
16171f0c44aSXin LI            #614  docs: Fix documentation on effect of switch XML_DTD on
16271f0c44aSXin LI                    symbol visibility in doc/reference.html
16371f0c44aSXin LI
16471f0c44aSXin LI        Other changes:
16571f0c44aSXin LI            #638  MinGW: Make fix-xmltest-log.sh drop more Wine bug output
16671f0c44aSXin LI       #596 #625  Autotools: Sync CMake templates with CMake 3.22
16771f0c44aSXin LI            #608  CMake: Migrate from use of CMAKE_*_POSTFIX to
16871f0c44aSXin LI                    dedicated variables EXPAT_*_POSTFIX to stop affecting
16971f0c44aSXin LI                    other projects
17071f0c44aSXin LI       #597 #599  Windows|CMake: Add missing -DXML_STATIC to test runners
17171f0c44aSXin LI                    and fuzzers
17271f0c44aSXin LI       #512 #621  Windows|CMake: Render .def file from a template to fix
17371f0c44aSXin LI                    linking with -DEXPAT_DTD=OFF and/or -DEXPAT_ATTR_INFO=ON
17471f0c44aSXin LI       #611 #621  MinGW|CMake: Apply MSVC .def file when linking
17571f0c44aSXin LI       #622 #624  MinGW|CMake: Sync library name with GNU Autotools,
17671f0c44aSXin LI                    i.e. produce libexpat-1.dll rather than libexpat.dll
17771f0c44aSXin LI                    by default.  Filename libexpat.dll.a is unaffected.
17871f0c44aSXin LI            #632  MinGW|CMake: Set missing variable CMAKE_RC_COMPILER in
17971f0c44aSXin LI                    toolchain file "cmake/mingw-toolchain.cmake" to avoid
18071f0c44aSXin LI                    error "windres: Command not found" on e.g. Ubuntu 20.04
18171f0c44aSXin LI       #597 #627  CMake: Unify inconsistent use of set() and option() in
18271f0c44aSXin LI                    context of public build time options to take need for
18371f0c44aSXin LI                    set(.. FORCE) in projects using Expat by means of
18471f0c44aSXin LI                    add_subdirectory(..) off Expat's users' shoulders
18571f0c44aSXin LI       #626 #641  Stop exporting API symbols when building a static library
18671f0c44aSXin LI            #644  Resolve use of deprecated "fgrep" by "grep -F"
18771f0c44aSXin LI            #620  CMake: Make documentation on variables a bit more consistent
18871f0c44aSXin LI            #636  CMake: Drop leading whitespace from a #cmakedefine line in
18971f0c44aSXin LI                    file expat_config.h.cmake
19071f0c44aSXin LI            #594  xmlwf: Fix harmless variable mix-up in function nsattcmp
19171f0c44aSXin LI  #592 #593 #610  Address Cppcheck warnings
19271f0c44aSXin LI            #643  Address Clang 15 compiler warnings
19371f0c44aSXin LI       #642 #644  Version info bumped from 9:8:8 to 9:9:8;
19471f0c44aSXin LI                    see https://verbump.de/ for what these numbers do
19571f0c44aSXin LI
19671f0c44aSXin LI        Infrastructure:
19771f0c44aSXin LI       #597 #598  CI: Windows: Start covering MSVC 2022
19871f0c44aSXin LI            #619  CI: macOS: Migrate off deprecated macOS 10.15
19971f0c44aSXin LI            #632  CI: Linux: Make migration off deprecated Ubuntu 18.04 work
20071f0c44aSXin LI            #643  CI: Upgrade Clang from 14 to 15
20171f0c44aSXin LI            #637  apply-clang-format.sh: Add support for BSD find
20271f0c44aSXin LI            #633  coverage.sh: Exclude MinGW headers
20371f0c44aSXin LI            #635  coverage.sh: Fix name collision for -funsigned-char
20471f0c44aSXin LI
20571f0c44aSXin LI        Special thanks to:
20671f0c44aSXin LI            David Faure
20771f0c44aSXin LI            Felix Wilhelm
20871f0c44aSXin LI            Frank Bergmann
20971f0c44aSXin LI            Rhodri James
21071f0c44aSXin LI            Rosen Penev
21171f0c44aSXin LI            Thijs Schreijer
21271f0c44aSXin LI            Vincent Torri
21371f0c44aSXin LI                 and
21471f0c44aSXin LI            Google Project Zero
21571f0c44aSXin LI
21671f0c44aSXin LIRelease 2.4.8 Mon March 28 2022
21771f0c44aSXin LI        Other changes:
21871f0c44aSXin LI            #587  pkg-config: Move "-lm" to section "Libs.private"
21971f0c44aSXin LI            #587  CMake|MSVC: Fix pkg-config section "Libs"
22071f0c44aSXin LI        #55 #582  CMake|macOS: Start using linker arguments
22171f0c44aSXin LI                    "-compatibility_version <version>" and
22271f0c44aSXin LI                    "-current_version <version>" in a way compatible with
22371f0c44aSXin LI                    GNU Libtool
22471f0c44aSXin LI       #590 #591  Version info bumped from 9:7:8 to 9:8:8;
22571f0c44aSXin LI                    see https://verbump.de/ for what these numbers do
22671f0c44aSXin LI
22771f0c44aSXin LI        Infrastructure:
22871f0c44aSXin LI            #589  CI: Upgrade Clang from 13 to 14
22971f0c44aSXin LI
23071f0c44aSXin LI        Special thanks to:
23171f0c44aSXin LI            evpobr
23271f0c44aSXin LI            Kai Pastor
23371f0c44aSXin LI            Sam James
23471f0c44aSXin LI
2357ed8e142SXin LIRelease 2.4.7 Fri March 4 2022
2367ed8e142SXin LI        Bug fixes:
2377ed8e142SXin LI       #572 #577  Relax fix to CVE-2022-25236 (introduced with release 2.4.5)
2387ed8e142SXin LI                    with regard to all valid URI characters (RFC 3986),
2397ed8e142SXin LI                    i.e. the following set (excluding whitespace):
2407ed8e142SXin LI                    ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz
2417ed8e142SXin LI                    0123456789 % -._~ :/?#[]@ !$&'()*+,;=
2427ed8e142SXin LI
2437ed8e142SXin LI        Other changes:
2447ed8e142SXin LI  #555 #570 #581  CMake|Windows: Store Expat version in the DLL
2457ed8e142SXin LI            #577  Document consequences of namespace separator choices not just
2467ed8e142SXin LI                    in doc/reference.html but also in header <expat.h>
2477ed8e142SXin LI            #577  Document Expat's lack of validation of namespace URIs against
2487ed8e142SXin LI                    RFC 3986, and that the XML 1.0r4 specification doesn't
2497ed8e142SXin LI                    require Expat to validate namespace URIs, and that Expat
2507ed8e142SXin LI                    may do more in that regard in future releases.
2517ed8e142SXin LI                    If you find need for strict RFC 3986 URI validation on
2527ed8e142SXin LI                    application level today, https://uriparser.github.io/ may
2537ed8e142SXin LI                    be of interest.
2547ed8e142SXin LI            #579  Fix documentation of XML_EndDoctypeDeclHandler in <expat.h>
2557ed8e142SXin LI            #575  Document that a call to XML_FreeContentModel can be done at
2567ed8e142SXin LI                    a later time from outside the element declaration handler
2577ed8e142SXin LI            #574  Make hardcoded namespace URIs easier to find in code
2587ed8e142SXin LI            #573  Update documentation on use of XML_POOR_ENTOPY on Solaris
2597ed8e142SXin LI       #569 #571  tests: Resolve use of macros NAN and INFINITY for GNU G++
2607ed8e142SXin LI                    4.8.2 on Solaris.
2617ed8e142SXin LI       #578 #580  Version info bumped from 9:6:8 to 9:7:8;
2627ed8e142SXin LI                    see https://verbump.de/ for what these numbers do
2637ed8e142SXin LI
2647ed8e142SXin LI        Special thanks to:
2657ed8e142SXin LI            Jeffrey Walton
2667ed8e142SXin LI            Johnny Jazeix
2677ed8e142SXin LI            Thijs Schreijer
2687ed8e142SXin LI
269ac69e5d4SEric van GyzenRelease 2.4.6 Sun February 20 2022
270ac69e5d4SEric van Gyzen        Bug fixes:
271ac69e5d4SEric van Gyzen            #566  Fix a regression introduced by the fix for CVE-2022-25313
272ac69e5d4SEric van Gyzen                    in release 2.4.5 that affects applications that (1)
273ac69e5d4SEric van Gyzen                    call function XML_SetElementDeclHandler and (2) are
274ac69e5d4SEric van Gyzen                    parsing XML that contains nested element declarations
275ac69e5d4SEric van Gyzen                    (e.g. "<!ELEMENT junk ((bar|foo|xyz+), zebra*)>").
276ac69e5d4SEric van Gyzen
277ac69e5d4SEric van Gyzen        Other changes:
278ac69e5d4SEric van Gyzen       #567 #568  Version info bumped from 9:5:8 to 9:6:8;
279ac69e5d4SEric van Gyzen                    see https://verbump.de/ for what these numbers do
280ac69e5d4SEric van Gyzen
281ac69e5d4SEric van Gyzen        Special thanks to:
282ac69e5d4SEric van Gyzen            Matt Sergeant
283ac69e5d4SEric van Gyzen            Samanta Navarro
284ac69e5d4SEric van Gyzen            Sergei Trofimovich
285ac69e5d4SEric van Gyzen                 and
286ac69e5d4SEric van Gyzen            NixOS
287ac69e5d4SEric van Gyzen            Perl XML::Parser
288ac69e5d4SEric van Gyzen
289ac69e5d4SEric van GyzenRelease 2.4.5 Fri February 18 2022
290ac69e5d4SEric van Gyzen        Security fixes:
291ac69e5d4SEric van Gyzen            #562  CVE-2022-25235 -- Passing malformed 2- and 3-byte UTF-8
292ac69e5d4SEric van Gyzen                    sequences (e.g. from start tag names) to the XML
293ac69e5d4SEric van Gyzen                    processing application on top of Expat can cause
294ac69e5d4SEric van Gyzen                    arbitrary damage (e.g. code execution) depending
295ac69e5d4SEric van Gyzen                    on how invalid UTF-8 is handled inside the XML
296ac69e5d4SEric van Gyzen                    processor; validation was not their job but Expat's.
297ac69e5d4SEric van Gyzen                    Exploits with code execution are known to exist.
298ac69e5d4SEric van Gyzen            #561  CVE-2022-25236 -- Passing (one or more) namespace separator
299ac69e5d4SEric van Gyzen                    characters in "xmlns[:prefix]" attribute values
300ac69e5d4SEric van Gyzen                    made Expat send malformed tag names to the XML
301ac69e5d4SEric van Gyzen                    processor on top of Expat which can cause
302ac69e5d4SEric van Gyzen                    arbitrary damage (e.g. code execution) depending
303ac69e5d4SEric van Gyzen                    on such unexpectable cases are handled inside the XML
304ac69e5d4SEric van Gyzen                    processor; validation was not their job but Expat's.
305ac69e5d4SEric van Gyzen                    Exploits with code execution are known to exist.
306ac69e5d4SEric van Gyzen            #558  CVE-2022-25313 -- Fix stack exhaustion in doctype parsing
307ac69e5d4SEric van Gyzen                    that could be triggered by e.g. a 2 megabytes
308ac69e5d4SEric van Gyzen                    file with a large number of opening braces.
309ac69e5d4SEric van Gyzen                    Expected impact is denial of service or potentially
310ac69e5d4SEric van Gyzen                    arbitrary code execution.
311ac69e5d4SEric van Gyzen            #560  CVE-2022-25314 -- Fix integer overflow in function copyString;
312ac69e5d4SEric van Gyzen                    only affects the encoding name parameter at parser creation
313ac69e5d4SEric van Gyzen                    time which is often hardcoded (rather than user input),
314ac69e5d4SEric van Gyzen                    takes a value in the gigabytes to trigger, and a 64-bit
315ac69e5d4SEric van Gyzen                    machine.  Expected impact is denial of service.
316ac69e5d4SEric van Gyzen            #559  CVE-2022-25315 -- Fix integer overflow in function storeRawNames;
317ac69e5d4SEric van Gyzen                    needs input in the gigabytes and a 64-bit machine.
318ac69e5d4SEric van Gyzen                    Expected impact is denial of service or potentially
319ac69e5d4SEric van Gyzen                    arbitrary code execution.
320ac69e5d4SEric van Gyzen
321ac69e5d4SEric van Gyzen        Other changes:
322ac69e5d4SEric van Gyzen       #557 #564  Version info bumped from 9:4:8 to 9:5:8;
323ac69e5d4SEric van Gyzen                    see https://verbump.de/ for what these numbers do
324ac69e5d4SEric van Gyzen
325ac69e5d4SEric van Gyzen        Special thanks to:
326ac69e5d4SEric van Gyzen            Ivan Fratric
327ac69e5d4SEric van Gyzen            Samanta Navarro
328ac69e5d4SEric van Gyzen                 and
329ac69e5d4SEric van Gyzen            Google Project Zero
330ac69e5d4SEric van Gyzen            JetBrains
331ac69e5d4SEric van Gyzen
332ac69e5d4SEric van GyzenRelease 2.4.4 Sun January 30 2022
333ac69e5d4SEric van Gyzen        Security fixes:
334ac69e5d4SEric van Gyzen            #550  CVE-2022-23852 -- Fix signed integer overflow
335ac69e5d4SEric van Gyzen                    (undefined behavior) in function XML_GetBuffer
336ac69e5d4SEric van Gyzen                    (that is also called by function XML_Parse internally)
337ac69e5d4SEric van Gyzen                    for when XML_CONTEXT_BYTES is defined to >0 (which is both
338ac69e5d4SEric van Gyzen                    common and default).
339ac69e5d4SEric van Gyzen                    Impact is denial of service or more.
340ac69e5d4SEric van Gyzen            #551  CVE-2022-23990 -- Fix unsigned integer overflow in function
341ac69e5d4SEric van Gyzen                    doProlog triggered by large content in element type
342ac69e5d4SEric van Gyzen                    declarations when there is an element declaration handler
343ac69e5d4SEric van Gyzen                    present (from a prior call to XML_SetElementDeclHandler).
344ac69e5d4SEric van Gyzen                    Impact is denial of service or more.
345ac69e5d4SEric van Gyzen
346ac69e5d4SEric van Gyzen        Bug fixes:
347ac69e5d4SEric van Gyzen       #544 #545  xmlwf: Fix a memory leak on output file opening error
348ac69e5d4SEric van Gyzen
349ac69e5d4SEric van Gyzen        Other changes:
350ac69e5d4SEric van Gyzen            #546  Autotools: Fix broken CMake support under Cygwin
351ac69e5d4SEric van Gyzen            #554  Windows: Add missing files to the installer to fix
352ac69e5d4SEric van Gyzen                    compilation with CMake from installed sources
353ac69e5d4SEric van Gyzen       #552 #554  Version info bumped from 9:3:8 to 9:4:8;
354ac69e5d4SEric van Gyzen                    see https://verbump.de/ for what these numbers do
355ac69e5d4SEric van Gyzen
356ac69e5d4SEric van Gyzen        Special thanks to:
357ac69e5d4SEric van Gyzen            Carlo Bramini
358ac69e5d4SEric van Gyzen            hwt0415
359ac69e5d4SEric van Gyzen            Roland Illig
360ac69e5d4SEric van Gyzen            Samanta Navarro
361ac69e5d4SEric van Gyzen                 and
362ac69e5d4SEric van Gyzen            Clang LeakSan and the Clang team
363ac69e5d4SEric van Gyzen
364cc68614dSXin LIRelease 2.4.3 Sun January 16 2022
365cc68614dSXin LI        Security fixes:
366cc68614dSXin LI       #531 #534  CVE-2021-45960 -- Fix issues with left shifts by >=29 places
367cc68614dSXin LI                    resulting in
368cc68614dSXin LI                      a) realloc acting as free
369cc68614dSXin LI                      b) realloc allocating too few bytes
370cc68614dSXin LI                      c) undefined behavior
371cc68614dSXin LI                    depending on architecture and precise value
372cc68614dSXin LI                    for XML documents with >=2^27+1 prefixed attributes
373cc68614dSXin LI                    on a single XML tag a la
374cc68614dSXin LI                    "<r xmlns:a='[..]' a:a123='[..]' [..] />"
375cc68614dSXin LI                    where XML_ParserCreateNS is used to create the parser
376cc68614dSXin LI                    (which needs argument "-n" when running xmlwf).
377cc68614dSXin LI                    Impact is denial of service, or more.
378cc68614dSXin LI       #532 #538  CVE-2021-46143 (ZDI-CAN-16157) -- Fix integer overflow
379cc68614dSXin LI                    on variable m_groupSize in function doProlog leading
380cc68614dSXin LI                    to realloc acting as free.
381cc68614dSXin LI                    Impact is denial of service or more.
382cc68614dSXin LI            #539  CVE-2022-22822 to CVE-2022-22827 -- Prevent integer overflows
383cc68614dSXin LI                    near memory allocation at multiple places.  Mitre assigned
384cc68614dSXin LI                    a dedicated CVE for each involved internal C function:
385cc68614dSXin LI                    - CVE-2022-22822 for function addBinding
386cc68614dSXin LI                    - CVE-2022-22823 for function build_model
387cc68614dSXin LI                    - CVE-2022-22824 for function defineAttribute
388cc68614dSXin LI                    - CVE-2022-22825 for function lookup
389cc68614dSXin LI                    - CVE-2022-22826 for function nextScaffoldPart
390cc68614dSXin LI                    - CVE-2022-22827 for function storeAtts
391cc68614dSXin LI                    Impact is denial of service or more.
392cc68614dSXin LI
393cc68614dSXin LI        Other changes:
394cc68614dSXin LI            #535  CMake: Make call to file(GENERATE [..]) work for CMake <3.19
395cc68614dSXin LI            #541  Autotools|CMake: MinGW: Make run.sh(.in) work for Cygwin
396cc68614dSXin LI                    and MSYS2 by not going through Wine on these platforms
397cc68614dSXin LI       #527 #528  Address compiler warnings
398cc68614dSXin LI       #533 #543  Version info bumped from 9:2:8 to 9:3:8;
399cc68614dSXin LI                    see https://verbump.de/ for what these numbers do
400cc68614dSXin LI
401cc68614dSXin LI        Infrastructure:
402cc68614dSXin LI            #536  CI: Check for realistic minimum CMake version
403cc68614dSXin LI       #529 #539  CI: Cover compilation with -m32
404cc68614dSXin LI            #529  CI: Store coverage reports as artifacts for download
405cc68614dSXin LI            #528  CI: Upgrade Clang from 11 to 13
406cc68614dSXin LI
407cc68614dSXin LI        Special thanks to:
408cc68614dSXin LI            An anonymous whitehat
409cc68614dSXin LI            Christopher Degawa
410cc68614dSXin LI            J. Peter Mugaas
411cc68614dSXin LI            Tyson Smith
412cc68614dSXin LI                 and
413cc68614dSXin LI            GCC Farm Project
414cc68614dSXin LI            Trend Micro Zero Day Initiative
415cc68614dSXin LI
416cc68614dSXin LIRelease 2.4.2 Sun December 19 2021
417cc68614dSXin LI        Other changes:
418cc68614dSXin LI       #509 #510  Link againgst libm for function "isnan"
419cc68614dSXin LI       #513 #514  Include expat_config.h as early as possible
420cc68614dSXin LI            #498  Autotools: Include files with release archives:
421cc68614dSXin LI                    - buildconf.sh
422cc68614dSXin LI                    - fuzz/*.c
42371f0c44aSXin LI       #507 #519  Autotools: Sync CMake templates with CMake 3.20
424cc68614dSXin LI       #495 #524  CMake: MinGW: Fix pkg-config section "Libs" for
425cc68614dSXin LI                    - non-release build types (e.g. -DCMAKE_BUILD_TYPE=Debug)
426cc68614dSXin LI                    - multi-config CMake generators (e.g. Ninja Multi-Config)
427cc68614dSXin LI       #502 #503  docs: Document that function XML_GetBuffer may return NULL
428cc68614dSXin LI                    when asking for a buffer of 0 (zero) bytes size
429cc68614dSXin LI       #522 #523  docs: Fix return value docs for both
430cc68614dSXin LI                    XML_SetBillionLaughsAttackProtection* functions
431cc68614dSXin LI       #525 #526  Version info bumped from 9:1:8 to 9:2:8;
432cc68614dSXin LI                    see https://verbump.de/ for what these numbers do
433cc68614dSXin LI
434cc68614dSXin LI        Special thanks to:
435*4543ef51SXin LI            Donghee Na
436cc68614dSXin LI            Joergen Ibsen
437cc68614dSXin LI            Kai Pastor
438cc68614dSXin LI
439cc68614dSXin LIRelease 2.4.1 Sun May 23 2021
440cc68614dSXin LI        Bug fixes:
441cc68614dSXin LI       #488 #490  Autotools: Fix installed header expat_config.h for multilib
442cc68614dSXin LI                    systems; regression introduced in 2.4.0 by pull request #486
443cc68614dSXin LI
444cc68614dSXin LI        Other changes:
445cc68614dSXin LI       #491 #492  Version info bumped from 9:0:8 to 9:1:8;
446cc68614dSXin LI                    see https://verbump.de/ for what these numbers do
447cc68614dSXin LI
448cc68614dSXin LI        Special thanks to:
449cc68614dSXin LI            Gentoo's QA check "multilib_check_headers"
450cc68614dSXin LI
451cc68614dSXin LIRelease 2.4.0 Sun May 23 2021
452cc68614dSXin LI        Security fixes:
453cc68614dSXin LI   #34 #466 #484  CVE-2013-0340/CWE-776 -- Protect against billion laughs attacks
454cc68614dSXin LI                    (denial-of-service; flavors targeting CPU time or RAM or both,
455cc68614dSXin LI                    leveraging general entities or parameter entities or both)
456cc68614dSXin LI                    by tracking and limiting the input amplification factor
457cc68614dSXin LI                    (<amplification> := (<direct> + <indirect>) / <direct>).
458cc68614dSXin LI                    By conservative default, amplification up to a factor of 100.0
459cc68614dSXin LI                    is tolerated and rejection only starts after 8 MiB of output bytes
460cc68614dSXin LI                    (=<direct> + <indirect>) have been processed.
461cc68614dSXin LI                    The fix adds the following to the API:
462cc68614dSXin LI                    - A new error code XML_ERROR_AMPLIFICATION_LIMIT_BREACH to
463cc68614dSXin LI                      signals this specific condition.
464cc68614dSXin LI                    - Two new API functions ..
465cc68614dSXin LI                      - XML_SetBillionLaughsAttackProtectionMaximumAmplification and
466cc68614dSXin LI                      - XML_SetBillionLaughsAttackProtectionActivationThreshold
467cc68614dSXin LI                      .. to further tighten billion laughs protection parameters
468cc68614dSXin LI                      when desired.  Please see file "doc/reference.html" for details.
469cc68614dSXin LI                      If you ever need to increase the defaults for non-attack XML
470cc68614dSXin LI                      payload, please file a bug report with libexpat.
471cc68614dSXin LI                    - Two new XML_FEATURE_* constants ..
472cc68614dSXin LI                      - that can be queried using the XML_GetFeatureList function, and
473cc68614dSXin LI                      - that are shown in "xmlwf -v" output.
474cc68614dSXin LI                    - Two new environment variable switches ..
475cc68614dSXin LI                      - EXPAT_ACCOUNTING_DEBUG=(0|1|2|3) and
476cc68614dSXin LI                      - EXPAT_ENTITY_DEBUG=(0|1)
477cc68614dSXin LI                      .. for runtime debugging of accounting and entity processing.
478cc68614dSXin LI                      Specific behavior of these values may change in the future.
479cc68614dSXin LI                    - Two new command line arguments "-a FACTOR" and "-b BYTES"
480cc68614dSXin LI                      for xmlwf to further tighten billion laughs protection
481cc68614dSXin LI                      parameters when desired.
482cc68614dSXin LI                      If you ever need to increase the defaults for non-attack XML
483cc68614dSXin LI                      payload, please file a bug report with libexpat.
484cc68614dSXin LI
485cc68614dSXin LI        Bug fixes:
486cc68614dSXin LI       #332 #470  For (non-default) compilation with -DEXPAT_MIN_SIZE=ON (CMake)
487cc68614dSXin LI                    or CPPFLAGS=-DXML_MIN_SIZE (GNU Autotools): Fix segfault
488cc68614dSXin LI                    for UTF-16 payloads containing CDATA sections.
489cc68614dSXin LI       #485 #486  Autotools: Fix generated CMake files for non-64bit and
490cc68614dSXin LI                    non-Linux platforms (e.g. macOS and MinGW in particular)
491cc68614dSXin LI                    that were introduced with release 2.3.0
492cc68614dSXin LI
493cc68614dSXin LI        Other changes:
494cc68614dSXin LI       #468 #469  xmlwf: Improve help output and the xmlwf man page
495cc68614dSXin LI            #463  xmlwf: Improve maintainability through some refactoring
496cc68614dSXin LI            #477  xmlwf: Fix man page DocBook validity
49771f0c44aSXin LI            #456  Autotools: Sync CMake templates with CMake 3.18
498cc68614dSXin LI       #458 #459  CMake: Support absolute paths for both CMAKE_INSTALL_LIBDIR
499cc68614dSXin LI                    and CMAKE_INSTALL_INCLUDEDIR
500cc68614dSXin LI       #471 #481  CMake: Add support for standard variable BUILD_SHARED_LIBS
501cc68614dSXin LI            #457  Unexpose symbol _INTERNAL_trim_to_complete_utf8_characters
502cc68614dSXin LI            #467  Resolve macro HAVE_EXPAT_CONFIG_H
503cc68614dSXin LI            #472  Delete unused legacy helper file "conftools/PrintPath"
504cc68614dSXin LI       #473 #483  Improve attribution
505cc68614dSXin LI  #464 #465 #477  doc/reference.html: Fix XHTML validity
506cc68614dSXin LI       #475 #478  doc/reference.html: Replace the 90s look by OK.css
507cc68614dSXin LI            #479  Version info bumped from 8:0:7 to 9:0:8
508cc68614dSXin LI                    due to addition of new symbols and error codes;
509cc68614dSXin LI                    see https://verbump.de/ for what these numbers do
510cc68614dSXin LI
511cc68614dSXin LI        Infrastructure:
512cc68614dSXin LI            #456  CI: Enable periodic runs
513cc68614dSXin LI            #457  CI: Start covering the list of exported symbols
514cc68614dSXin LI            #474  CI: Isolate coverage task
515cc68614dSXin LI       #476 #482  CI: Adapt to breaking changes in image "ubuntu-18.04"
516cc68614dSXin LI            #477  CI: Cover well-formedness and DocBook/XHTML validity
517cc68614dSXin LI                    of doc/reference.html and doc/xmlwf.xml
518cc68614dSXin LI
519cc68614dSXin LI        Special thanks to:
520cc68614dSXin LI            Dimitry Andric
521cc68614dSXin LI            Eero Helenius
522cc68614dSXin LI            Nick Wellnhofer
523cc68614dSXin LI            Rhodri James
524cc68614dSXin LI            Tomas Korbar
525cc68614dSXin LI            Yury Gribov
526cc68614dSXin LI                 and
527cc68614dSXin LI            Clang LeakSan
528cc68614dSXin LI            JetBrains
529cc68614dSXin LI            OSS-Fuzz
530cc68614dSXin LI
531cc68614dSXin LIRelease 2.3.0 Thu March 25 2021
532cc68614dSXin LI        Bug fixes:
533cc68614dSXin LI            #438  When calling XML_ParseBuffer without a prior successful call to
534cc68614dSXin LI                    XML_GetBuffer as a user, no longer trigger undefined behavior
535cc68614dSXin LI                    (by adding an integer to a NULL pointer) but rather return
536cc68614dSXin LI                    XML_STATUS_ERROR and set the error code to (new) code
537cc68614dSXin LI                    XML_ERROR_NO_BUFFER. Found by UBSan (UndefinedBehaviorSanitizer)
538cc68614dSXin LI                    of Clang 11 (but not Clang 9).
539cc68614dSXin LI            #444  xmlwf: Exit status 2 was used for both:
540cc68614dSXin LI                    - malformed input files (documented) and
541cc68614dSXin LI                    - invalid command-line arguments (undocumented).
542cc68614dSXin LI                    The case of invalid command-line arguments now
543cc68614dSXin LI                    has its own exit status 4, resolving the ambiguity.
544cc68614dSXin LI
545cc68614dSXin LI        Other changes:
546cc68614dSXin LI            #439  xmlwf: Add argument -k to allow continuing after
547cc68614dSXin LI                    non-fatal errors
548cc68614dSXin LI            #439  xmlwf: Add section about exit status to the -h help output
549cc68614dSXin LI  #422 #426 #447  Windows: Drop support for Visual Studio <=14.0/2015
550cc68614dSXin LI            #434  Windows: CMake: Detect unsupported Visual Studio at
551cc68614dSXin LI                    configure time (rather than at compile time)
552cc68614dSXin LI       #382 #428  testrunner: Make verbose mode (argument "-v") report
553cc68614dSXin LI                    about passed tests, and make default mode report about
554cc68614dSXin LI                    failures, as well.
555cc68614dSXin LI            #442  CMake: Call "enable_language(CXX)" prior to tinkering
556cc68614dSXin LI                    with CMAKE_CXX_* variables
557cc68614dSXin LI            #448  Document use of libexpat from a CMake-based project
558cc68614dSXin LI            #451  Autotools: Install CMake files as generated by CMake 3.19.6
559cc68614dSXin LI                    so that users with "find_package(expat [..] CONFIG [..])"
560cc68614dSXin LI                    are served on distributions that are *not* using the CMake
561cc68614dSXin LI                    build system inside for libexpat packaging
562cc68614dSXin LI       #436 #437  Autotools: Drop obsolescent macro AC_HEADER_STDC
563cc68614dSXin LI       #450 #452  Autotools: Resolve use of obsolete macro AC_CONFIG_HEADER
564cc68614dSXin LI            #441  Address compiler warnings
565cc68614dSXin LI            #443  Version info bumped from 7:12:6 to 8:0:7
566cc68614dSXin LI                    due to addition of error code XML_ERROR_NO_BUFFER
567cc68614dSXin LI                    (see https://verbump.de/ for what these numbers do)
568cc68614dSXin LI
569cc68614dSXin LI        Infrastructure:
570cc68614dSXin LI       #435 #446  Replace Travis CI by GitHub Actions
571cc68614dSXin LI
572cc68614dSXin LI        Special thanks to:
573cc68614dSXin LI            Alexander Richardson
574cc68614dSXin LI            Oleksandr Popovych
575cc68614dSXin LI            Thomas Beutlich
576cc68614dSXin LI            Tim Bray
577cc68614dSXin LI                 and
578cc68614dSXin LI            Clang LeakSan, Clang 11 UBSan and the Clang team
579cc68614dSXin LI
580cc68614dSXin LIRelease 2.2.10 Sat October 3 2020
581cc68614dSXin LI        Bug fixes:
582cc68614dSXin LI  #390 #395 #398  Fix undefined behavior during parsing caused by
583cc68614dSXin LI                    pointer arithmetic with NULL pointers
584cc68614dSXin LI       #404 #405  Fix reading uninitialized variable during parsing
585cc68614dSXin LI            #406  xmlwf: Add missing check for malloc NULL return
586cc68614dSXin LI
587cc68614dSXin LI        Other changes:
588cc68614dSXin LI            #396  Windows: Drop support for Visual Studio <=8.0/2005
589cc68614dSXin LI            #409  Windows: Add missing file "Changes" to the installer
590cc68614dSXin LI                    to fix compilation with CMake from installed sources
591cc68614dSXin LI            #403  xmlwf: Document exit codes in xmlwf manpage and
592cc68614dSXin LI                    exit with code 3 (rather than code 1) for output errors
593cc68614dSXin LI                    when used with "-d DIRECTORY"
594cc68614dSXin LI       #356 #359  MinGW: Provide declaration of rand_s for mingwrt <5.3.0
595cc68614dSXin LI       #383 #392  Autotools: Use -Werror while configure tests the compiler
596cc68614dSXin LI                    for supported compile flags to avoid false positives
597cc68614dSXin LI  #383 #393 #394  Autotools: Improve handling of user (C|CPP|CXX|LD)FLAGS,
598cc68614dSXin LI                    e.g. ensure that they have the last word over flags added
599cc68614dSXin LI                    while running ./configure
600cc68614dSXin LI            #360  CMake: Create libexpatw.{dll,so} and expatw.pc (with emphasis
601cc68614dSXin LI                    on suffix "w") with -DEXPAT_CHAR_TYPE=(ushort|wchar_t)
602cc68614dSXin LI            #360  CMake: Detect and deny unsupported build combinations
603cc68614dSXin LI                    involving -DEXPAT_CHAR_TYPE=(ushort|wchar_t)
604cc68614dSXin LI            #360  CMake: Install pre-compiled shipped xmlwf.1 manpage in case
605cc68614dSXin LI                    of -DEXPAT_BUILD_DOCS=OFF
606cc68614dSXin LI  #375 #380 #419  CMake: Fix use of Expat by means of add_subdirectory
607cc68614dSXin LI       #407 #408  CMake: Keep expat target name constant at "expat"
608cc68614dSXin LI                    (i.e. refrain from using the target name to control
609cc68614dSXin LI                    build artifact filenames)
610cc68614dSXin LI            #385  CMake: Fix compilation with -DEXPAT_SHARED_LIBS=OFF for
611cc68614dSXin LI                    Windows
612cc68614dSXin LI                  CMake: Expose man page compilation as target "xmlwf-manpage"
613cc68614dSXin LI       #413 #414  CMake: Introduce option EXPAT_BUILD_PKGCONFIG
614cc68614dSXin LI                    to control generation of pkg-config file "expat.pc"
615cc68614dSXin LI            #424  CMake: Add minimalistic support for building binary packages
616cc68614dSXin LI                    with CMake target "package"; based on CPack
617cc68614dSXin LI            #366  CMake: Add option -DEXPAT_OSSFUZZ_BUILD=(ON|OFF) with
618cc68614dSXin LI                    default OFF to build fuzzer code against OSS-Fuzz and
619cc68614dSXin LI                    related environment variable LIB_FUZZING_ENGINE
620cc68614dSXin LI            #354  Fix testsuite for -DEXPAT_DTD=OFF and -DEXPAT_NS=OFF, each
621cc68614dSXin LI    #354 #355 ..
622cc68614dSXin LI       #356 #412  Address compiler warnings
623cc68614dSXin LI       #368 #369  Address pngcheck warnings with doc/*.png images
624cc68614dSXin LI            #425  Version info bumped from 7:11:6 to 7:12:6
625cc68614dSXin LI
626cc68614dSXin LI        Special thanks to:
627cc68614dSXin LI            asavah
628cc68614dSXin LI            Ben Wagner
629cc68614dSXin LI            Bhargava Shastry
630cc68614dSXin LI            Frank Landgraf
631cc68614dSXin LI            Jeffrey Walton
632cc68614dSXin LI            Joe Orton
633cc68614dSXin LI            Kleber Tarcísio
634cc68614dSXin LI            Ma Lin
635cc68614dSXin LI            Maciej Sroczyński
636cc68614dSXin LI            Mohammed Khajapasha
637cc68614dSXin LI            Vadim Zeitlin
638cc68614dSXin LI                 and
639cc68614dSXin LI            Cppcheck 2.0 and the Cppcheck team
640cc68614dSXin LI
641cc68614dSXin LIRelease 2.2.9 Wed September 25 2019
6426b2c1e49SXin LI        Other changes:
6436b2c1e49SXin LI                  examples: Drop executable bits from elements.c
6446b2c1e49SXin LI            #349  Windows: Change the name of the Windows DLLs from expat*.dll
6456b2c1e49SXin LI                    to libexpat*.dll once more (regression from 2.2.8, first
6466b2c1e49SXin LI                    fixed in 1.95.3, issue #61 on SourceForge today,
6476b2c1e49SXin LI                    was issue #432456 back then); needs a fix due
6486b2c1e49SXin LI                    case-insensitive file systems on Windows and the fact that
6496b2c1e49SXin LI                    Perl's XML::Parser::Expat compiles into Expat.dll.
6506b2c1e49SXin LI            #347  Windows: Only define _CRT_RAND_S if not defined
6516b2c1e49SXin LI                  Version info bumped from 7:10:6 to 7:11:6
6526b2c1e49SXin LI
6536b2c1e49SXin LI        Special thanks to:
6546b2c1e49SXin LI            Ben Wagner
6556b2c1e49SXin LI
656cc68614dSXin LIRelease 2.2.8 Fri September 13 2019
6576b2c1e49SXin LI        Security fixes:
6586b2c1e49SXin LI       #317 #318  CVE-2019-15903 -- Fix heap overflow triggered by
6596b2c1e49SXin LI                    XML_GetCurrentLineNumber (or XML_GetCurrentColumnNumber),
6606b2c1e49SXin LI                    and deny internal entities closing the doctype;
6616b2c1e49SXin LI                    fixed in commit c20b758c332d9a13afbbb276d30db1d183a85d43
6626b2c1e49SXin LI
6636b2c1e49SXin LI        Bug fixes:
6646b2c1e49SXin LI            #240  Fix cases where XML_StopParser did not have any effect
6656b2c1e49SXin LI                    when called from inside of an end element handler
6666b2c1e49SXin LI            #341  xmlwf: Fix exit code for operation without "-d DIRECTORY";
6676b2c1e49SXin LI                    previously, only "-d DIRECTORY" would give you a proper
6686b2c1e49SXin LI                    exit code:
6696b2c1e49SXin LI                      # xmlwf -d . <<<'<not well-formed>' 2>/dev/null ; echo $?
6706b2c1e49SXin LI                      2
6716b2c1e49SXin LI                      # xmlwf <<<'<not well-formed>' 2>/dev/null ; echo $?
6726b2c1e49SXin LI                      0
6736b2c1e49SXin LI                    Now both cases return exit code 2.
6746b2c1e49SXin LI
6756b2c1e49SXin LI        Other changes:
6766b2c1e49SXin LI       #299 #302  Windows: Replace LoadLibrary hack to access
6776b2c1e49SXin LI                    unofficial API function SystemFunction036 (RtlGenRandom)
6786b2c1e49SXin LI                    by using official API function rand_s (needs WinXP+)
6796b2c1e49SXin LI            #325  Windows: Drop support for Visual Studio <=7.1/2003
6806b2c1e49SXin LI                    and document supported compilers in README.md
6816b2c1e49SXin LI            #286  Windows: Remove COM code from xmlwf; in case it turns
6826b2c1e49SXin LI                    out needed later, there will be a dedicated repository
6836b2c1e49SXin LI                    below https://github.com/libexpat/ for that code
6846b2c1e49SXin LI            #322  Windows: Remove explicit MSVC solution and project files.
6856b2c1e49SXin LI                    You can generate Visual Studio solution files through
6866b2c1e49SXin LI                    CMake, e.g.: cmake -G"Visual Studio 15 2017" .
6876b2c1e49SXin LI            #338  xmlwf: Make "xmlwf -h" help output more friendly
6886b2c1e49SXin LI            #339  examples: Improve elements.c
6896b2c1e49SXin LI       #244 #264  Autotools: Add argument --enable-xml-attr-info
6906b2c1e49SXin LI       #239 #301  Autotools: Add arguments
6916b2c1e49SXin LI                    --with-getrandom
6926b2c1e49SXin LI                    --without-getrandom
6936b2c1e49SXin LI                    --with-sys-getrandom
6946b2c1e49SXin LI                    --without-sys-getrandom
6956b2c1e49SXin LI       #312 #343  Autotools: Fix linking issues with "./configure LD=clang"
6966b2c1e49SXin LI                  Autotools: Fix "make run-xmltest" for out-of-source builds
6976b2c1e49SXin LI       #329 #336  CMake: Pull all options from Expat <=2.2.7 into namespace
6986b2c1e49SXin LI                    prefix EXPAT_ with the exception of DOCBOOK_TO_MAN:
6996b2c1e49SXin LI                    - BUILD_doc            -> EXPAT_BUILD_DOCS (plural)
7006b2c1e49SXin LI                    - BUILD_examples       -> EXPAT_BUILD_EXAMPLES
7016b2c1e49SXin LI                    - BUILD_shared         -> EXPAT_SHARED_LIBS
7026b2c1e49SXin LI                    - BUILD_tests          -> EXPAT_BUILD_TESTS
7036b2c1e49SXin LI                    - BUILD_tools          -> EXPAT_BUILD_TOOLS
7046b2c1e49SXin LI                    - DOCBOOK_TO_MAN       -> DOCBOOK_TO_MAN (unchanged)
7056b2c1e49SXin LI                    - INSTALL              -> EXPAT_ENABLE_INSTALL
7066b2c1e49SXin LI                    - MSVC_USE_STATIC_CRT  -> EXPAT_MSVC_STATIC_CRT
7076b2c1e49SXin LI                    - USE_libbsd           -> EXPAT_WITH_LIBBSD
7086b2c1e49SXin LI                    - WARNINGS_AS_ERRORS   -> EXPAT_WARNINGS_AS_ERRORS
7096b2c1e49SXin LI                    - XML_CONTEXT_BYTES    -> EXPAT_CONTEXT_BYTES
7106b2c1e49SXin LI                    - XML_DEV_URANDOM      -> EXPAT_DEV_URANDOM
7116b2c1e49SXin LI                    - XML_DTD              -> EXPAT_DTD
7126b2c1e49SXin LI                    - XML_NS               -> EXPAT_NS
7136b2c1e49SXin LI                    - XML_UNICODE          -> EXPAT_CHAR_TYPE=ushort (!)
7146b2c1e49SXin LI                    - XML_UNICODE_WCHAR_T  -> EXPAT_CHAR_TYPE=wchar_t (!)
7156b2c1e49SXin LI       #244 #264  CMake: Add argument -DEXPAT_ATTR_INFO=(ON|OFF),
7166b2c1e49SXin LI                    default OFF
7176b2c1e49SXin LI            #326  CMake: Add argument -DEXPAT_LARGE_SIZE=(ON|OFF),
7186b2c1e49SXin LI                    default OFF
7196b2c1e49SXin LI            #328  CMake: Add argument -DEXPAT_MIN_SIZE=(ON|OFF),
7206b2c1e49SXin LI                    default OFF
7216b2c1e49SXin LI       #239 #277  CMake: Add arguments
7226b2c1e49SXin LI                    -DEXPAT_WITH_GETRANDOM=(ON|OFF|AUTO), default AUTO
7236b2c1e49SXin LI                    -DEXPAT_WITH_SYS_GETRANDOM=(ON|OFF|AUTO), default AUTO
7246b2c1e49SXin LI            #326  CMake: Install expat_config.h to include directory
7256b2c1e49SXin LI            #326  CMake: Generate and install configuration files for
7266b2c1e49SXin LI                    future find_package(expat [..] CONFIG [..])
7276b2c1e49SXin LI                  CMake: Now produces a summary of applied configuration
7286b2c1e49SXin LI                  CMake: Require C++ compiler only when tests are enabled
7296b2c1e49SXin LI            #330  CMake: Fix compilation for 16bit character types,
7306b2c1e49SXin LI                    i.e. ex -DXML_UNICODE=ON (and ex -DXML_UNICODE_WCHAR_T=ON)
7316b2c1e49SXin LI            #265  CMake: Fix linking with MinGW
7326b2c1e49SXin LI            #330  CMake: Add full support for MinGW; to enable, use
7336b2c1e49SXin LI                    -DCMAKE_TOOLCHAIN_FILE=[expat]/cmake/mingw-toolchain.cmake
7346b2c1e49SXin LI            #330  CMake: Port "make run-xmltest" from GNU Autotools to CMake
7356b2c1e49SXin LI            #316  CMake: Windows: Make binary postfix match MSVC
7366b2c1e49SXin LI                    Old: expat[d].lib
7376b2c1e49SXin LI                    New: expat[w][d][MD|MT].lib
7386b2c1e49SXin LI                  CMake: Migrate files from Windows to Unix line endings
7396b2c1e49SXin LI            #308  CMake: Integrate OSS-Fuzz fuzzers, option
7406b2c1e49SXin LI                    -DEXPAT_BUILD_FUZZERS=(ON|OFF), default OFF
7416b2c1e49SXin LI             #14  Drop an OpenVMS support leftover
7426b2c1e49SXin LI    #235 #268 ..
7436b2c1e49SXin LI    #270 #310 ..
7446b2c1e49SXin LI  #313 #331 #333  Address compiler warnings
7456b2c1e49SXin LI    #282 #283 ..
7466b2c1e49SXin LI       #284 #285  Address cppcheck warnings
7476b2c1e49SXin LI       #294 #295  Address Clang Static Analyzer warnings
7486b2c1e49SXin LI        #24 #293  Mass-apply clang-format 9 (and ensure conformance during CI)
7496b2c1e49SXin LI                  Version info bumped from 7:9:6 to 7:10:6
7506b2c1e49SXin LI
7516b2c1e49SXin LI        Special thanks to:
7526b2c1e49SXin LI            David Loffredo
7536b2c1e49SXin LI            Joonun Jang
7546b2c1e49SXin LI            Kishore Kunche
7556b2c1e49SXin LI            Marco Maggi
7566b2c1e49SXin LI            Mitch Phillips
757cc68614dSXin LI            Mohammed Khajapasha
7586b2c1e49SXin LI            Rolf Ade
7596b2c1e49SXin LI            xantares
7606b2c1e49SXin LI            Zhongyuan Zhou
7616b2c1e49SXin LI
7626b2c1e49SXin LIRelease 2.2.7 Wed June 19 2019
7636b2c1e49SXin LI        Security fixes:
7646b2c1e49SXin LI       #186 #262  CVE-2018-20843 -- Fix extraction of namespace prefixes from
7656b2c1e49SXin LI                    XML names; XML names with multiple colons could end up in
7666b2c1e49SXin LI                    the wrong namespace, and take a high amount of RAM and CPU
7676b2c1e49SXin LI                    resources while processing, opening the door to
7686b2c1e49SXin LI                    use for denial-of-service attacks
7696b2c1e49SXin LI
7706b2c1e49SXin LI        Other changes:
7716b2c1e49SXin LI       #195 #197  Autotools/CMake: Utilize -fvisibility=hidden to stop
7726b2c1e49SXin LI                    exporting non-API symbols
7736b2c1e49SXin LI            #227  Autotools: Add --without-examples and --without-tests
7746b2c1e49SXin LI            #228  Autotools: Modernize configure.ac
7756b2c1e49SXin LI       #245 #246  Autotools: Fix check for -fvisibility=hidden for Clang
7766b2c1e49SXin LI       #247 #248  Autotools: Fix compilation for lack of docbook2x-man
7776b2c1e49SXin LI       #236 #258  Autotools: Produce .tar.{gz,lz,xz} release archives
7786b2c1e49SXin LI            #212  CMake: Make libdir of pkgconfig expat.pc support multilib
7796b2c1e49SXin LI       #158 #263  CMake: Build man page in PROJECT_BINARY_DIR not _SOURCE_DIR
7806b2c1e49SXin LI            #219  Remove fallback to bcopy, assume that memmove(3) exists
7816b2c1e49SXin LI            #257  Use portable "/usr/bin/env bash" shebang (e.g. for OpenBSD)
7826b2c1e49SXin LI            #243  Windows: Fix syntax of .def module definition files
7836b2c1e49SXin LI                  Version info bumped from 7:8:6 to 7:9:6
7846b2c1e49SXin LI
7856b2c1e49SXin LI        Special thanks to:
7866b2c1e49SXin LI            Benjamin Peterson
7876b2c1e49SXin LI            Caolán McNamara
7886b2c1e49SXin LI            Hanno Böck
7896b2c1e49SXin LI            KangLin
7906b2c1e49SXin LI            Kishore Kunche
7916b2c1e49SXin LI            Marco Maggi
7926b2c1e49SXin LI            Rhodri James
7936b2c1e49SXin LI            Sebastian Dröge
7946b2c1e49SXin LI            userwithuid
7956b2c1e49SXin LI            Yury Gribov
7966b2c1e49SXin LI
7970a48773fSEric van GyzenRelease 2.2.6 Sun August 12 2018
7980a48773fSEric van Gyzen        Bug fixes:
7990a48773fSEric van Gyzen       #170 #206  Avoid doing arithmetic with NULL pointers in XML_GetBuffer
8000a48773fSEric van Gyzen       #204 #205  Fix 2.2.5 regression with suspend-resume while parsing
8010a48773fSEric van Gyzen                    a document like '<root/>'
8020a48773fSEric van Gyzen
8030a48773fSEric van Gyzen        Other changes:
8040a48773fSEric van Gyzen       #165 #168  Autotools: Fix docbook-related configure syntax error
8050a48773fSEric van Gyzen            #166  Autotools: Avoid grep option `-q` for Solaris
8060a48773fSEric van Gyzen            #167  Autotools: Support
8070a48773fSEric van Gyzen                    ./configure DOCBOOK_TO_MAN="xmlto man --skip-validation"
8080a48773fSEric van Gyzen       #159 #167  Autotools: Support DOCBOOK_TO_MAN command which produces
8090a48773fSEric van Gyzen                    xmlwf.1 rather than XMLWF.1; also covers case insensitive
8100a48773fSEric van Gyzen                    file systems
8110a48773fSEric van Gyzen            #181  Autotools: Drop -rpath option passed to libtool
8120a48773fSEric van Gyzen            #188  Autotools: Detect and deny SGML docbook2man as ours is XML
8130a48773fSEric van Gyzen            #188  Autotools/CMake: Support command db2x_docbook2man as well
8140a48773fSEric van Gyzen            #174  CMake: Introduce option WARNINGS_AS_ERRORS, defaults to OFF
8150a48773fSEric van Gyzen       #184 #185  CMake: Introduce option MSVC_USE_STATIC_CRT, defaults to OFF
8160a48773fSEric van Gyzen       #207 #208  CMake: Introduce option XML_UNICODE and XML_UNICODE_WCHAR_T,
8170a48773fSEric van Gyzen                    both defaulting to OFF
8180a48773fSEric van Gyzen            #175  CMake: Prefer check_symbol_exists over check_function_exists
8190a48773fSEric van Gyzen            #176  CMake: Create the same pkg-config file as with GNU Autotools
8200a48773fSEric van Gyzen       #178 #179  CMake: Use GNUInstallDirs module to set proper defaults for
8210a48773fSEric van Gyzen                    install directories
8220a48773fSEric van Gyzen            #208  CMake: Utilize expat_config.h.cmake for XML_DEV_URANDOM
8230a48773fSEric van Gyzen            #180  Windows: Fix compilation of test suite for Visual Studio 2008
8240a48773fSEric van Gyzen  #131 #173 #202  Address compiler warnings
8250a48773fSEric van Gyzen  #187 #190 #200  Fix miscellaneous typos
8260a48773fSEric van Gyzen                  Version info bumped from 7:7:6 to 7:8:6
8270a48773fSEric van Gyzen
8280a48773fSEric van Gyzen        Special thanks to:
8290a48773fSEric van Gyzen            Anton Maklakov
8300a48773fSEric van Gyzen            Benjamin Peterson
8310a48773fSEric van Gyzen            Brad King
8320a48773fSEric van Gyzen            Franek Korta
8330a48773fSEric van Gyzen            Frank Rast
8340a48773fSEric van Gyzen            Joe Orton
8350a48773fSEric van Gyzen            luzpaz
8360a48773fSEric van Gyzen            Pedro Vicente
8370a48773fSEric van Gyzen            Rainer Jung
8380a48773fSEric van Gyzen            Rhodri James
8390a48773fSEric van Gyzen            Rolf Ade
8400a48773fSEric van Gyzen            Rolf Eike Beer
8410a48773fSEric van Gyzen            Thomas Beutlich
8420a48773fSEric van Gyzen            Tomasz Kłoczko
8430a48773fSEric van Gyzen
8440a48773fSEric van GyzenRelease 2.2.5 Tue October 31 2017
8450a48773fSEric van Gyzen        Bug fixes:
8460a48773fSEric van Gyzen              #8  If the parser runs out of memory, make sure its internal
8470a48773fSEric van Gyzen                    state reflects the memory it actually has, not the memory
8480a48773fSEric van Gyzen                    it wanted to have.
8490a48773fSEric van Gyzen             #11  The default handler wasn't being called when it should for
8500a48773fSEric van Gyzen                    a SYSTEM or PUBLIC doctype if an entity declaration handler
8510a48773fSEric van Gyzen                    was registered.
8520a48773fSEric van Gyzen       #137 #138  Fix a case of mistakenly reported parsing success where
8530a48773fSEric van Gyzen                    XML_StopParser was called from an element handler
8540a48773fSEric van Gyzen            #162  Function XML_ErrorString was returning NULL rather than
8550a48773fSEric van Gyzen                    a message for code XML_ERROR_INVALID_ARGUMENT
8560a48773fSEric van Gyzen                    introduced with release 2.2.1
8570a48773fSEric van Gyzen
8580a48773fSEric van Gyzen        Other changes:
8590a48773fSEric van Gyzen            #106  xmlwf: Add argument -N adding notation declarations
8600a48773fSEric van Gyzen        #75 #106  Test suite: Resolve expected failure cases where xmlwf
8610a48773fSEric van Gyzen                    output was incomplete
8620a48773fSEric van Gyzen            #127  Windows: Fix test suite compilation
8630a48773fSEric van Gyzen       #126 #127  Windows: Fix compilation for Visual Studio 2012
8640a48773fSEric van Gyzen                  Windows: Upgrade shipped project files to Visual Studio 2017
8650a48773fSEric van Gyzen        #33 #132  tests: Mass-fix compilation for XML_UNICODE_WCHAR_T
8660a48773fSEric van Gyzen            #129  examples: Fix compilation for XML_UNICODE_WCHAR_T
8670a48773fSEric van Gyzen            #130  benchmark: Fix compilation for XML_UNICODE_WCHAR_T
8680a48773fSEric van Gyzen            #144  xmlwf: Fix compilation for XML_UNICODE_WCHAR_T; still needs
8690a48773fSEric van Gyzen                    Windows or MinGW for 2-byte wchar_t
8700a48773fSEric van Gyzen              #9  Address two Clang Static Analyzer false positives
8710a48773fSEric van Gyzen             #59  Resolve troublesome macros hiding parser struct membership
8720a48773fSEric van Gyzen                    and dereferencing that pointer
8730a48773fSEric van Gyzen              #6  Resolve superfluous internal malloc/realloc switch
8740a48773fSEric van Gyzen       #153 #155  Improve docbook2x-man detection
8750a48773fSEric van Gyzen            #160  Undefine NDEBUG in the test suite (rather than rejecting it)
8760a48773fSEric van Gyzen            #161  Address compiler warnings
8770a48773fSEric van Gyzen                  Version info bumped from 7:6:6 to 7:7:6
8780a48773fSEric van Gyzen
8790a48773fSEric van Gyzen        Special thanks to:
8800a48773fSEric van Gyzen            Benbuck Nason
8810a48773fSEric van Gyzen            Hans Wennborg
8820a48773fSEric van Gyzen            José Gutiérrez de la Concha
8830a48773fSEric van Gyzen            Pedro Monreal Gonzalez
8840a48773fSEric van Gyzen            Rhodri James
8850a48773fSEric van Gyzen            Rolf Ade
8860a48773fSEric van Gyzen            Stephen Groat
8870a48773fSEric van Gyzen                 and
8880a48773fSEric van Gyzen            Core Infrastructure Initiative
8890a48773fSEric van Gyzen
8900a48773fSEric van GyzenRelease 2.2.4 Sat August 19 2017
8910a48773fSEric van Gyzen        Bug fixes:
8920a48773fSEric van Gyzen            #115  Fix copying of partial characters for UTF-8 input
8930a48773fSEric van Gyzen
8940a48773fSEric van Gyzen        Other changes:
8950a48773fSEric van Gyzen            #109  Fix "make check" for non-x86 architectures that default
8960a48773fSEric van Gyzen                    to unsigned type char (-128..127 rather than 0..255)
8970a48773fSEric van Gyzen            #109  coverage.sh: Cover -funsigned-char
8980a48773fSEric van Gyzen                  Autotools: Introduce --without-xmlwf argument
8990a48773fSEric van Gyzen             #65  Autotools: Replace handwritten Makefile with GNU Automake
9000a48773fSEric van Gyzen             #43  CMake: Auto-detect high quality entropy extractors, add new
9010a48773fSEric van Gyzen                    option USE_libbsd=ON to use arc4random_buf of libbsd
9020a48773fSEric van Gyzen             #74  CMake: Add -fno-strict-aliasing only where supported
9030a48773fSEric van Gyzen            #114  CMake: Always honor manually set BUILD_* options
9040a48773fSEric van Gyzen            #114  CMake: Compile man page if docbook2x-man is available, only
9050a48773fSEric van Gyzen            #117  Include file tests/xmltest.log.expected in source tarball
9060a48773fSEric van Gyzen                    (required for "make run-xmltest")
9070a48773fSEric van Gyzen            #117  Include (existing) Visual Studio 2013 files in source tarball
9080a48773fSEric van Gyzen                  Improve test suite error output
9090a48773fSEric van Gyzen            #111  Fix some typos in documentation
9100a48773fSEric van Gyzen                  Version info bumped from 7:5:6 to 7:6:6
9110a48773fSEric van Gyzen
9120a48773fSEric van Gyzen        Special thanks to:
9130a48773fSEric van Gyzen            Jakub Wilk
9140a48773fSEric van Gyzen            Joe Orton
9150a48773fSEric van Gyzen            Lin Tian
9160a48773fSEric van Gyzen            Rolf Eike Beer
9170a48773fSEric van Gyzen
9180a48773fSEric van GyzenRelease 2.2.3 Wed August 2 2017
9190a48773fSEric van Gyzen        Security fixes:
9200a48773fSEric van Gyzen             #82  CVE-2017-11742 -- Windows: Fix DLL hijacking vulnerability
9210a48773fSEric van Gyzen                    using Steve Holme's LoadLibrary wrapper for/of cURL
9220a48773fSEric van Gyzen
9230a48773fSEric van Gyzen        Bug fixes:
9240a48773fSEric van Gyzen             #85  Fix a dangling pointer issue related to realloc
9250a48773fSEric van Gyzen
9260a48773fSEric van Gyzen        Other changes:
9270a48773fSEric van Gyzen                  Increase code coverage
9280a48773fSEric van Gyzen             #91  Linux: Allow getrandom to fail if nonblocking pool has not
9290a48773fSEric van Gyzen                    yet been initialized and read /dev/urandom then, instead.
9300a48773fSEric van Gyzen                    This is in line with what recent Python does.
9310a48773fSEric van Gyzen             #81  Pre-10.7/Lion macOS: Support entropy from arc4random
9320a48773fSEric van Gyzen             #86  Check that a UTF-16 encoding in an XML declaration has the
9330a48773fSEric van Gyzen                    right endianness
9340a48773fSEric van Gyzen        #4 #5 #7  Recover correctly when some reallocations fail
9350a48773fSEric van Gyzen                  Repair "./configure && make" for systems without any
9360a48773fSEric van Gyzen                    provider of high quality entropy
9370a48773fSEric van Gyzen                    and try reading /dev/urandom on those
9380a48773fSEric van Gyzen                  Ensure that user-defined character encodings have converter
9390a48773fSEric van Gyzen                    functions when they are needed
9400a48773fSEric van Gyzen                  Fix mis-leading description of argument -c in xmlwf.1
9410a48773fSEric van Gyzen                  Rely on macro HAVE_ARC4RANDOM_BUF (rather than __CloudABI__)
9420a48773fSEric van Gyzen                    for CloudABI
9430a48773fSEric van Gyzen            #100  Fix use of SIPHASH_MAIN in siphash.h
9440a48773fSEric van Gyzen             #23  Test suite: Fix memory leaks
9450a48773fSEric van Gyzen                  Version info bumped from 7:4:6 to 7:5:6
9460a48773fSEric van Gyzen
9470a48773fSEric van Gyzen        Special thanks to:
9480a48773fSEric van Gyzen            Chanho Park
9490a48773fSEric van Gyzen            Joe Orton
9500a48773fSEric van Gyzen            Pascal Cuoq
9510a48773fSEric van Gyzen            Rhodri James
9520a48773fSEric van Gyzen            Simon McVittie
9530a48773fSEric van Gyzen            Vadim Zeitlin
9540a48773fSEric van Gyzen            Viktor Szakats
9550a48773fSEric van Gyzen                 and
9560a48773fSEric van Gyzen            Core Infrastructure Initiative
9570a48773fSEric van Gyzen
9580a48773fSEric van GyzenRelease 2.2.2 Wed July 12 2017
9590a48773fSEric van Gyzen        Security fixes:
9600a48773fSEric van Gyzen             #43  Protect against compilation without any source of high
9610a48773fSEric van Gyzen                    quality entropy enabled, e.g. with CMake build system;
9620a48773fSEric van Gyzen                    commit ff0207e6076e9828e536b8d9cd45c9c92069b895
9630a48773fSEric van Gyzen             #60  Windows with _UNICODE:
9640a48773fSEric van Gyzen                    Unintended use of LoadLibraryW with a non-wide string
9650a48773fSEric van Gyzen                    resulted in failure to load advapi32.dll and degradation
9660a48773fSEric van Gyzen                    in quality of used entropy when compiled with _UNICODE for
9670a48773fSEric van Gyzen                    Windows; you can launch existing binaries with
9680a48773fSEric van Gyzen                    EXPAT_ENTROPY_DEBUG=1 in the environment to inspect the
9690a48773fSEric van Gyzen                    quality of entropy used during runtime; commits
9700a48773fSEric van Gyzen                    * 95b95032f907ef1cd17ee7a9a1768010a825d61d
9710a48773fSEric van Gyzen                    * 73a5a2e9c081f49f2d775cf7ced864158b68dc80
9720a48773fSEric van Gyzen   [MOX-006]      Fix non-NULL parser parameter validation in XML_Parse;
9730a48773fSEric van Gyzen                    resulted in NULL dereference, previously;
9740a48773fSEric van Gyzen                    commit ac256dafdffc9622ab0dc2c62fcecb0dfcfa71fe
9750a48773fSEric van Gyzen
9760a48773fSEric van Gyzen        Bug fixes:
9770a48773fSEric van Gyzen             #69  Fix improper use of unsigned long long integer literals
9780a48773fSEric van Gyzen
9790a48773fSEric van Gyzen        Other changes:
9800a48773fSEric van Gyzen             #73  Start requiring a C99 compiler
9810a48773fSEric van Gyzen             #49  Fix "==" Bashism in configure script
9820a48773fSEric van Gyzen             #50  Fix too eager getrandom detection for Debian GNU/kFreeBSD
9830a48773fSEric van Gyzen             #52    and macOS
9840a48773fSEric van Gyzen             #51  Address lack of stdint.h in Visual Studio 2003 to 2008
9850a48773fSEric van Gyzen             #58  Address compile warnings
9860a48773fSEric van Gyzen             #68  Fix "./buildconf.sh && ./configure" for some versions
9870a48773fSEric van Gyzen                    of Dash for /bin/sh
9880a48773fSEric van Gyzen             #72  CMake: Ease use of Expat in context of a parent project
9890a48773fSEric van Gyzen                    with multiple CMakeLists.txt files
9900a48773fSEric van Gyzen             #72  CMake: Resolve mistaken executable permissions
9910a48773fSEric van Gyzen             #76  Address compile warning with -DNDEBUG (not recommended!)
9920a48773fSEric van Gyzen             #77  Address compile warning about macro redefinition
9930a48773fSEric van Gyzen
9940a48773fSEric van Gyzen        Special thanks to:
9950a48773fSEric van Gyzen            Alexander Bluhm
9960a48773fSEric van Gyzen            Ben Boeckel
9970a48773fSEric van Gyzen            Cătălin Răceanu
9980a48773fSEric van Gyzen            Kerin Millar
9990a48773fSEric van Gyzen            László Böszörményi
10000a48773fSEric van Gyzen            S. P. Zeidler
10010a48773fSEric van Gyzen            Segev Finer
10020a48773fSEric van Gyzen            Václav Slavík
10030a48773fSEric van Gyzen            Victor Stinner
10040a48773fSEric van Gyzen            Viktor Szakats
10050a48773fSEric van Gyzen                 and
10060a48773fSEric van Gyzen            Radically Open Security
10070a48773fSEric van Gyzen
10080a48773fSEric van GyzenRelease 2.2.1 Sat June 17 2017
10090a48773fSEric van Gyzen        Security fixes:
10100a48773fSEric van Gyzen                  CVE-2017-9233 -- External entity infinite loop DoS
10110a48773fSEric van Gyzen                    Details: https://libexpat.github.io/doc/cve-2017-9233/
10120a48773fSEric van Gyzen                    Commit c4bf96bb51dd2a1b0e185374362ee136fe2c9d7f
10130a48773fSEric van Gyzen   [MOX-002]      CVE-2016-9063 -- Detect integer overflow; commit
10140a48773fSEric van Gyzen                    d4f735b88d9932bd5039df2335eefdd0723dbe20
10150a48773fSEric van Gyzen                    (Fixed version of existing downstream patches!)
10160a48773fSEric van Gyzen   (SF.net) #539  Fix regression from fix to CVE-2016-0718 cutting off
10170a48773fSEric van Gyzen                    longer tag names; commits
10180a48773fSEric van Gyzen                    * 896b6c1fd3b842f377d1b62135dccf0a579cf65d
10190a48773fSEric van Gyzen                    * af507cef2c93cb8d40062a0abe43a4f4e9158fb2
10200a48773fSEric van Gyzen             #16    * 0dbbf43fdb20f593ddf4fa1ff67288000dd4a7fd
10210a48773fSEric van Gyzen             #25  More integer overflow detection (function poolGrow); commits
10220a48773fSEric van Gyzen                    * 810b74e4703dcfdd8f404e3cb177d44684775143
10230a48773fSEric van Gyzen                    * 44178553f3539ce69d34abee77a05e879a7982ac
10240a48773fSEric van Gyzen   [MOX-002]      Detect overflow from len=INT_MAX call to XML_Parse; commits
10250a48773fSEric van Gyzen                    * 4be2cb5afcc018d996f34bbbce6374b7befad47f
10260a48773fSEric van Gyzen                    * 7e5b71b748491b6e459e5c9a1d090820f94544d8
10270a48773fSEric van Gyzen   [MOX-005] #30  Use high quality entropy for hash initialization:
10280a48773fSEric van Gyzen                    * arc4random_buf on BSD, systems with libbsd
10290a48773fSEric van Gyzen                      (when configured with --with-libbsd), CloudABI
10300a48773fSEric van Gyzen                    * RtlGenRandom on Windows XP / Server 2003 and later
10310a48773fSEric van Gyzen                    * getrandom on Linux 3.17+
10320a48773fSEric van Gyzen                    In a way, that's still part of CVE-2016-5300.
10330a48773fSEric van Gyzen                    https://github.com/libexpat/libexpat/pull/30/commits
10340a48773fSEric van Gyzen   [MOX-005]      For the low quality entropy extraction fallback code,
10350a48773fSEric van Gyzen                    the parser instance address can no longer leak, commit
10360a48773fSEric van Gyzen                    04ad658bd3079dd15cb60fc67087900f0ff4b083
10370a48773fSEric van Gyzen   [MOX-003]      Prevent use of uninitialised variable; commit
10380a48773fSEric van Gyzen   [MOX-004]        a4dc944f37b664a3ca7199c624a98ee37babdb4b
10390a48773fSEric van Gyzen                  Add missing parameter validation to public API functions
10400a48773fSEric van Gyzen                    and dedicated error code XML_ERROR_INVALID_ARGUMENT:
10410a48773fSEric van Gyzen   [MOX-006]        * NULL checks; commits
10420a48773fSEric van Gyzen                      * d37f74b2b7149a3a95a680c4c4cd2a451a51d60a (merge/many)
10430a48773fSEric van Gyzen                      * 9ed727064b675b7180c98cb3d4f75efba6966681
10440a48773fSEric van Gyzen                      * 6a747c837c50114dfa413994e07c0ba477be4534
10450a48773fSEric van Gyzen                    * Negative length (XML_Parse); commit
10460a48773fSEric van Gyzen   [MOX-002]          70db8d2538a10f4c022655d6895e4c3e78692e7f
10470a48773fSEric van Gyzen   [MOX-001] #35  Change hash algorithm to William Ahern's version of SipHash
10480a48773fSEric van Gyzen                    to go further with fixing CVE-2012-0876.
10490a48773fSEric van Gyzen                    https://github.com/libexpat/libexpat/pull/39/commits
10500a48773fSEric van Gyzen
10510a48773fSEric van Gyzen        Bug fixes:
10520a48773fSEric van Gyzen             #32  Fix sharing of hash salt across parsers;
10530a48773fSEric van Gyzen                    relevant where XML_ExternalEntityParserCreate is called
10540a48773fSEric van Gyzen                    prior to XML_Parse, in particular (e.g. FBReader)
10550a48773fSEric van Gyzen             #28  xmlwf: Auto-disable use of memory-mapping (and parsing
10560a48773fSEric van Gyzen                    as a single chunk) for files larger than ~1 GB (2^30 bytes)
10570a48773fSEric van Gyzen                    rather than failing with error "out of memory"
10580a48773fSEric van Gyzen              #3  Fix double free after malloc failure in DTD code; commit
10590a48773fSEric van Gyzen                    7ae9c3d3af433cd4defe95234eae7dc8ed15637f
10600a48773fSEric van Gyzen             #17  Fix memory leak on parser error for unbound XML attribute
10610a48773fSEric van Gyzen                    prefix with new namespaces defined in the same tag;
10620a48773fSEric van Gyzen                    found by Google's OSS-Fuzz; commits
10630a48773fSEric van Gyzen                    * 16f87daae5a16132e479e4f71862128c7a915c73
10640a48773fSEric van Gyzen                    * b47dbc9745932c160893d433220e462bd605f8cd
10650a48773fSEric van Gyzen                  xmlwf on Windows: Add missing calls to CloseHandle
10660a48773fSEric van Gyzen
10670a48773fSEric van Gyzen        New features:
10680a48773fSEric van Gyzen             #30  Introduced environment switch EXPAT_ENTROPY_DEBUG=1
10690a48773fSEric van Gyzen                    for runtime debugging of entropy extraction
10700a48773fSEric van Gyzen
10710a48773fSEric van Gyzen        Other changes:
10720a48773fSEric van Gyzen                  Increase code coverage
10730a48773fSEric van Gyzen             #33  Reject use of XML_UNICODE_WCHAR_T with sizeof(wchar_t) != 2;
10740a48773fSEric van Gyzen                    XML_UNICODE_WCHAR_T was never meant to be used outside
10750a48773fSEric van Gyzen                    of Windows; 4-byte wchar_t is common on Linux
10760a48773fSEric van Gyzen   (SF.net) #538  Start using -fno-strict-aliasing
10770a48773fSEric van Gyzen   (SF.net) #540  Support compilation against cloudlibc of CloudABI
10780a48773fSEric van Gyzen                  Allow MinGW cross-compilation
10790a48773fSEric van Gyzen   (SF.net) #534  CMake: Introduce option "BUILD_doc" (enabled by default)
10800a48773fSEric van Gyzen                    to bypass compilation of the xmlwf.1 man page
10810a48773fSEric van Gyzen   (SF.net)  pr2  CMake: Introduce option "INSTALL" (enabled by default)
10820a48773fSEric van Gyzen                    to bypass installation of expat files
10830a48773fSEric van Gyzen                  CMake: Fix ninja support
10840a48773fSEric van Gyzen                  Autotools: Add parameters --enable-xml-context [COUNT]
10850a48773fSEric van Gyzen                    and --disable-xml-context; default of context of 1024
10860a48773fSEric van Gyzen                    bytes enabled unchanged
10870a48773fSEric van Gyzen             #14  Drop AmigaOS 4.x code and includes
10880a48773fSEric van Gyzen             #14  Drop ancient build systems:
10890a48773fSEric van Gyzen                    * Borland C++ Builder
10900a48773fSEric van Gyzen                    * OpenVMS
10910a48773fSEric van Gyzen                    * Open Watcom
10920a48773fSEric van Gyzen                    * Visual Studio 6.0
10930a48773fSEric van Gyzen                    * Pre-X Mac OS (MPW Makefile)
10940a48773fSEric van Gyzen                    If you happen to rely on some of these, please get in
10950a48773fSEric van Gyzen                    touch for joining with maintenance.
10960a48773fSEric van Gyzen             #10  Move from WIN32 to _WIN32
10970a48773fSEric van Gyzen             #13  Fix "make run-xmltest" order instability
10980a48773fSEric van Gyzen                  Address compile warnings
10990a48773fSEric van Gyzen                  Bump version info from 7:2:6 to 7:3:6
11000a48773fSEric van Gyzen                  Add AUTHORS file
11010a48773fSEric van Gyzen
11020a48773fSEric van Gyzen        Infrastructure:
11030a48773fSEric van Gyzen              #1  Migrate from SourceForge to GitHub (except downloads):
11040a48773fSEric van Gyzen                    https://github.com/libexpat/
11050a48773fSEric van Gyzen              #1  Re-create http://libexpat.org/ project website
11060a48773fSEric van Gyzen                  Start utilizing Travis CI
11070a48773fSEric van Gyzen
11080a48773fSEric van Gyzen        Special thanks to:
11090a48773fSEric van Gyzen            Andy Wang
11100a48773fSEric van Gyzen            Don Lewis
11110a48773fSEric van Gyzen            Ed Schouten
11120a48773fSEric van Gyzen            Karl Waclawek
11130a48773fSEric van Gyzen            Pascal Cuoq
11140a48773fSEric van Gyzen            Rhodri James
11150a48773fSEric van Gyzen            Sergei Nikulov
11160a48773fSEric van Gyzen            Tobias Taschner
11170a48773fSEric van Gyzen            Viktor Szakats
11180a48773fSEric van Gyzen                 and
11190a48773fSEric van Gyzen            Core Infrastructure Initiative
11200a48773fSEric van Gyzen            Mozilla Foundation (MOSS Track 3: Secure Open Source)
11210a48773fSEric van Gyzen            Radically Open Security
11220a48773fSEric van Gyzen
1123be8aff81SXin LIRelease 2.2.0 Tue June 21 2016
1124be8aff81SXin LI        Security fixes:
1125be8aff81SXin LI            #537  CVE-2016-0718 -- Fix crash on malformed input
1126be8aff81SXin LI                  CVE-2016-4472 -- Improve insufficient fix to CVE-2015-1283 /
1127be8aff81SXin LI                                   CVE-2015-2716 introduced with Expat 2.1.1
1128be8aff81SXin LI            #499  CVE-2016-5300 -- Use more entropy for hash initialization
1129be8aff81SXin LI                                   than the original fix to CVE-2012-0876
1130be8aff81SXin LI            #519  CVE-2012-6702 -- Resolve troublesome internal call to srand
1131be8aff81SXin LI                                   that was introduced with Expat 2.1.0
1132be8aff81SXin LI                                   when addressing CVE-2012-0876 (issue #496)
1133be8aff81SXin LI
1134be8aff81SXin LI        Bug fixes:
1135be8aff81SXin LI                  Fix uninitialized reads of size 1
1136be8aff81SXin LI                    (e.g. in little2_updatePosition)
1137be8aff81SXin LI                  Fix detection of UTF-8 character boundaries
1138be8aff81SXin LI
1139be8aff81SXin LI        Other changes:
1140be8aff81SXin LI            #532  Fix compilation for Visual Studio 2010 (keyword "C99")
1141be8aff81SXin LI                  Autotools: Resolve use of "$<" to better support bmake
1142be8aff81SXin LI                  Autotools: Add QA script "qa.sh" (and make target "qa")
1143be8aff81SXin LI                  Autotools: Respect CXXFLAGS if given
1144be8aff81SXin LI                  Autotools: Fix "make run-xmltest"
1145be8aff81SXin LI                  Autotools: Have "make run-xmltest" check for expected output
1146be8aff81SXin LI             p90  CMake: Fix static build (BUILD_shared=OFF) on Windows
1147be8aff81SXin LI            #536  CMake: Add soversion, support -DNO_SONAME=yes to bypass
1148be8aff81SXin LI            #323  CMake: Add suffix "d" to differentiate debug from release
1149be8aff81SXin LI                  CMake: Define WIN32 with CMake on Windows
1150be8aff81SXin LI                  Annotate memory allocators for GCC
1151be8aff81SXin LI                  Address all currently known compile warnings
1152be8aff81SXin LI                  Make sure that API symbols remain visible despite
1153be8aff81SXin LI                    -fvisibility=hidden
1154be8aff81SXin LI                  Remove executable flag from source files
1155be8aff81SXin LI                  Resolve COMPILED_FROM_DSP in favor of WIN32
1156be8aff81SXin LI
1157be8aff81SXin LI        Special thanks to:
1158be8aff81SXin LI            Björn Lindahl
1159be8aff81SXin LI            Christian Heimes
1160be8aff81SXin LI            Cristian Rodríguez
1161be8aff81SXin LI            Daniel Krügler
1162be8aff81SXin LI            Gustavo Grieco
1163be8aff81SXin LI            Karl Waclawek
1164be8aff81SXin LI            László Böszörményi
1165be8aff81SXin LI            Marco Grassi
1166be8aff81SXin LI            Pascal Cuoq
1167be8aff81SXin LI            Sergei Nikulov
1168be8aff81SXin LI            Thomas Beutlich
1169be8aff81SXin LI            Warren Young
1170be8aff81SXin LI            Yann Droneaud
1171be8aff81SXin LI
1172be8aff81SXin LIRelease 2.1.1 Sat March 12 2016
1173be8aff81SXin LI        Security fixes:
1174be8aff81SXin LI            #582: CVE-2015-1283 - Multiple integer overflows in XML_GetBuffer
1175be8aff81SXin LI
1176be8aff81SXin LI        Bug fixes:
1177be8aff81SXin LI            #502: Fix potential null pointer dereference
1178be8aff81SXin LI            #520: Symbol XML_SetHashSalt was not exported
1179be8aff81SXin LI            Output of "xmlwf -h" was incomplete
1180be8aff81SXin LI
1181be8aff81SXin LI        Other changes:
1182be8aff81SXin LI            #503: Document behavior of calling XML_SetHashSalt with salt 0
1183be8aff81SXin LI            Minor improvements to man page xmlwf(1)
1184be8aff81SXin LI            Improvements to the experimental CMake build system
1185be8aff81SXin LI            libtool now invoked with --verbose
1186be8aff81SXin LI
1187e3466a89SXin LIRelease 2.1.0 Sat March 24 2012
11880a48773fSEric van Gyzen        - Security fixes:
11890a48773fSEric van Gyzen          #2958794: CVE-2012-1148 - Memory leak in poolGrow.
11900a48773fSEric van Gyzen          #2895533: CVE-2012-1147 - Resource leak in readfilemap.c.
11910a48773fSEric van Gyzen          #3496608: CVE-2012-0876 - Hash DOS attack.
11920a48773fSEric van Gyzen          #2894085: CVE-2009-3560 - Buffer over-read and crash in big2_toUtf8().
11930a48773fSEric van Gyzen          #1990430: CVE-2009-3720 - Parser crash with special UTF-8 sequences.
1194e3466a89SXin LI        - Bug Fixes:
1195e3466a89SXin LI          #1742315: Harmful XML_ParserCreateNS suggestion.
1196e3466a89SXin LI          #1785430: Expat build fails on linux-amd64 with gcc version>=4.1 -O3.
1197e3466a89SXin LI          #1983953, 2517952, 2517962, 2649838:
1198e3466a89SXin LI                Build modifications using autoreconf instead of buildconf.sh.
1199e3466a89SXin LI          #2815947, #2884086: OBJEXT and EXEEXT support while building.
1200e3466a89SXin LI          #2517938: xmlwf should return non-zero exit status if not well-formed.
1201e3466a89SXin LI          #2517946: Wrong statement about XMLDecl in xmlwf.1 and xmlwf.sgml.
1202e3466a89SXin LI          #2855609: Dangling positionPtr after error.
1203e3466a89SXin LI          #2990652: CMake support.
1204e3466a89SXin LI          #3010819: UNEXPECTED_STATE with a trailing "%" in entity value.
12050a48773fSEric van Gyzen          #3206497: Uninitialized memory returned from XML_Parse.
1206e3466a89SXin LI          #3287849: make check fails on mingw-w64.
1207e3466a89SXin LI        - Patches:
1208e3466a89SXin LI          #1749198: pkg-config support.
1209e3466a89SXin LI          #3010222: Fix for bug #3010819.
1210e3466a89SXin LI          #3312568: CMake support.
1211e3466a89SXin LI          #3446384: Report byte offsets for attr names and values.
1212e3466a89SXin LI        - New Features / API changes:
1213be8aff81SXin LI          Added new API member XML_SetHashSalt() that allows setting an initial
1214e3466a89SXin LI                value (salt) for hash calculations. This is part of the fix for
1215e3466a89SXin LI                bug #3496608 to randomize hash parameters.
1216e3466a89SXin LI          When compiled with XML_ATTR_INFO defined, adds new API member
1217e3466a89SXin LI                XML_GetAttributeInfo() that allows retrieving the byte
1218e3466a89SXin LI                offsets for attribute names and values (patch #3446384).
1219e3466a89SXin LI          Added CMake build system.
1220e3466a89SXin LI                See bug #2990652 and patch #3312568.
1221e3466a89SXin LI          Added run-benchmark target to Makefile.in - relies on testdata module
1222e3466a89SXin LI                present in the same relative location as in the repository.
1223e3466a89SXin LI
1224220ed979SColeman KaneRelease 2.0.1 Tue June 5 2007
1225e3466a89SXin LI        - Fixed bugs #1515266, #1515600: The character data handler's calling
1226220ed979SColeman Kane          of XML_StopParser() was not handled properly; if the parser was
1227220ed979SColeman Kane          stopped and the handler set to NULL, the parser would segfault.
1228220ed979SColeman Kane        - Fixed bug #1690883: Expat failed on EBCDIC systems as it assumed
1229220ed979SColeman Kane          some character constants to be ASCII encoded.
1230220ed979SColeman Kane        - Minor cleanups of the test harness.
1231220ed979SColeman Kane        - Fixed xmlwf bug #1513566: "out of memory" error on file size zero.
1232220ed979SColeman Kane        - Fixed outline.c bug #1543233: missing a final XML_ParserFree() call.
1233220ed979SColeman Kane        - Fixes and improvements for Windows platform:
1234e3466a89SXin LI          bugs #1409451, #1476160, #1548182, #1602769, #1717322.
1235220ed979SColeman Kane        - Build fixes for various platforms:
1236220ed979SColeman Kane          HP-UX, Tru64, Solaris 9: patch #1437840, bug #1196180.
1237220ed979SColeman Kane          All Unix: #1554618 (refreshed config.sub/config.guess).
1238220ed979SColeman Kane                    #1490371, #1613457: support both, DESTDIR and INSTALL_ROOT,
1239220ed979SColeman Kane                    without relying on GNU-Make specific features.
1240220ed979SColeman Kane          #1647805: Patched configure.in to work better with Intel compiler.
1241220ed979SColeman Kane        - Fixes to Makefile.in to have make check work correctly:
1242220ed979SColeman Kane          bugs #1408143, #1535603, #1536684.
1243220ed979SColeman Kane        - Added Open Watcom support: patch #1523242.
1244220ed979SColeman Kane
1245220ed979SColeman KaneRelease 2.0.0 Wed Jan 11 2006
1246220ed979SColeman Kane        - We no longer use the "check" library for C unit testing; we
1247220ed979SColeman Kane          always use the (partial) internal implementation of the API.
1248220ed979SColeman Kane        - Report XML_NS setting via XML_GetFeatureList().
1249220ed979SColeman Kane        - Fixed headers for use from C++.
1250220ed979SColeman Kane        - XML_GetCurrentLineNumber() and  XML_GetCurrentColumnNumber()
1251220ed979SColeman Kane          now return unsigned integers.
1252220ed979SColeman Kane        - Added XML_LARGE_SIZE switch to enable 64-bit integers for
1253220ed979SColeman Kane          byte indexes and line/column numbers.
1254220ed979SColeman Kane        - Updated to use libtool 1.5.22 (the most recent).
1255220ed979SColeman Kane        - Added support for AmigaOS.
1256e3466a89SXin LI        - Some mostly minor bug fixes. SF issues include: #1006708,
1257e3466a89SXin LI          #1021776, #1023646, #1114960, #1156398, #1221160, #1271642.
1258220ed979SColeman Kane
1259220ed979SColeman KaneRelease 1.95.8 Fri Jul 23 2004
1260220ed979SColeman Kane        - Major new feature: suspend/resume.  Handlers can now request
1261220ed979SColeman Kane          that a parse be suspended for later resumption or aborted
1262220ed979SColeman Kane          altogether.  See "Temporarily Stopping Parsing" in the
1263220ed979SColeman Kane          documentation for more details.
1264220ed979SColeman Kane        - Some mostly minor bug fixes, but compilation should no
1265220ed979SColeman Kane          longer generate warnings on most platforms.  SF issues
1266e3466a89SXin LI          include: #827319, #840173, #846309, #888329, #896188, #923913,
1267e3466a89SXin LI          #928113, #961698, #985192.
1268220ed979SColeman Kane
1269220ed979SColeman KaneRelease 1.95.7 Mon Oct 20 2003
1270220ed979SColeman Kane        - Fixed enum XML_Status issue (reported on SourceForge many
1271220ed979SColeman Kane          times), so compilers that are properly picky will be happy.
1272220ed979SColeman Kane        - Introduced an XMLCALL macro to control the calling
1273220ed979SColeman Kane          convention used by the Expat API; this macro should be used
1274220ed979SColeman Kane          to annotate prototypes and definitions of callback
1275220ed979SColeman Kane          implementations in code compiled with a calling convention
1276220ed979SColeman Kane          other than the default convention for the host platform.
1277220ed979SColeman Kane        - Improved ability to build without the configure-generated
1278220ed979SColeman Kane          expat_config.h header.  This is useful for applications
1279220ed979SColeman Kane          which embed Expat rather than linking in the library.
1280e3466a89SXin LI        - Fixed a variety of bugs: see SF issues #458907, #609603,
1281e3466a89SXin LI          #676844, #679754, #692878, #692964, #695401, #699323, #699487,
1282e3466a89SXin LI          #820946.
1283220ed979SColeman Kane        - Improved hash table lookups.
1284220ed979SColeman Kane        - Added more regression tests and improved documentation.
1285220ed979SColeman Kane
1286220ed979SColeman KaneRelease 1.95.6 Tue Jan 28 2003
1287220ed979SColeman Kane        - Added XML_FreeContentModel().
1288220ed979SColeman Kane        - Added XML_MemMalloc(), XML_MemRealloc(), XML_MemFree().
1289e3466a89SXin LI        - Fixed a variety of bugs: see SF issues #615606, #616863,
1290e3466a89SXin LI          #618199, #653180, #673791.
1291220ed979SColeman Kane        - Enhanced the regression test suite.
1292e3466a89SXin LI        - Man page improvements: includes SF issue #632146.
1293220ed979SColeman Kane
12945bb6a25fSPoul-Henning KampRelease 1.95.5 Fri Sep 6 2002
12955bb6a25fSPoul-Henning Kamp        - Added XML_UseForeignDTD() for improved SAX2 support.
12965bb6a25fSPoul-Henning Kamp        - Added XML_GetFeatureList().
12975bb6a25fSPoul-Henning Kamp        - Defined XML_Bool type and the values XML_TRUE and XML_FALSE.
12985bb6a25fSPoul-Henning Kamp        - Use an incomplete struct instead of a void* for the parser
12995bb6a25fSPoul-Henning Kamp          (may not retain).
13005bb6a25fSPoul-Henning Kamp        - Fixed UTF-8 decoding bug that caused legal UTF-8 to be rejected.
13015bb6a25fSPoul-Henning Kamp        - Finally fixed bug where default handler would report DTD
13025bb6a25fSPoul-Henning Kamp          events that were already handled by another handler.
1303220ed979SColeman Kane          Initial patch contributed by Darryl Miles.
13045bb6a25fSPoul-Henning Kamp        - Removed unnecessary DllMain() function that caused static
13055bb6a25fSPoul-Henning Kamp          linking into a DLL to be difficult.
13065bb6a25fSPoul-Henning Kamp        - Added VC++ projects for building static libraries.
13075bb6a25fSPoul-Henning Kamp        - Reduced line-length for all source code and headers to be
13085bb6a25fSPoul-Henning Kamp          no longer than 80 characters, to help with AS/400 support.
13095bb6a25fSPoul-Henning Kamp        - Reduced memory copying during parsing (SF patch #600964).
1310e3466a89SXin LI        - Fixed a variety of bugs: see SF issues #580793, #434664,
1311e3466a89SXin LI          #483514, #580503, #581069, #584041, #584183, #584832, #585537,
1312e3466a89SXin LI          #596555, #596678, #598352, #598944, #599715, #600479, #600971.
13135bb6a25fSPoul-Henning Kamp
13145bb6a25fSPoul-Henning KampRelease 1.95.4 Fri Jul 12 2002
13155bb6a25fSPoul-Henning Kamp        - Added support for VMS, contributed by Craig Berry.  See
13165bb6a25fSPoul-Henning Kamp          vms/README.vms for more information.
13175bb6a25fSPoul-Henning Kamp        - Added Mac OS (classic) support, with a makefile for MPW,
13185bb6a25fSPoul-Henning Kamp          contributed by Thomas Wegner and Daryle Walker.
13195bb6a25fSPoul-Henning Kamp        - Added Borland C++ Builder 5 / BCC 5.5 support, contributed
13205bb6a25fSPoul-Henning Kamp          by Patrick McConnell (SF patch #538032).
1321e3466a89SXin LI        - Fixed a variety of bugs: see SF issues #441449, #563184,
1322e3466a89SXin LI          #564342, #566334, #566901, #569461, #570263, #575168, #579196.
13235bb6a25fSPoul-Henning Kamp        - Made skippedEntityHandler conform to SAX2 (see source comment)
13245bb6a25fSPoul-Henning Kamp        - Re-implemented WFC: Entity Declared from XML 1.0 spec and
13255bb6a25fSPoul-Henning Kamp          added a new error "entity declared in parameter entity":
1326e3466a89SXin LI          see SF bug report #569461 and SF patch #578161
13275bb6a25fSPoul-Henning Kamp        - Re-implemented section 5.1 from XML 1.0 spec:
1328e3466a89SXin LI          see SF bug report #570263 and SF patch #578161
13295bb6a25fSPoul-Henning Kamp
13305bb6a25fSPoul-Henning KampRelease 1.95.3 Mon Jun 3 2002
13315bb6a25fSPoul-Henning Kamp        - Added a project to the MSVC workspace to create a wchar_t
13325bb6a25fSPoul-Henning Kamp          version of the library; the DLLs are named libexpatw.dll.
13335bb6a25fSPoul-Henning Kamp        - Changed the name of the Windows DLLs from expat.dll to
13345bb6a25fSPoul-Henning Kamp          libexpat.dll; this fixes SF bug #432456.
13355bb6a25fSPoul-Henning Kamp        - Added the XML_ParserReset() API function.
13365bb6a25fSPoul-Henning Kamp        - Fixed XML_SetReturnNSTriplet() to work for element names.
13375bb6a25fSPoul-Henning Kamp        - Made the XML_UNICODE builds usable (thanks, Karl!).
13385bb6a25fSPoul-Henning Kamp        - Allow xmlwf to read from standard input.
13395bb6a25fSPoul-Henning Kamp        - Install a man page for xmlwf on Unix systems.
1340e3466a89SXin LI        - Fixed many bugs; see SF bug reports #231864, #461380, #464837,
1341e3466a89SXin LI          #466885, #469226, #477667, #484419, #487840, #494749, #496505,
1342e3466a89SXin LI          #547350.  Other bugs which we can't test as easily may also
13435bb6a25fSPoul-Henning Kamp          have been fixed, especially in the area of build support.
13445bb6a25fSPoul-Henning Kamp
13455bb6a25fSPoul-Henning KampRelease 1.95.2 Fri Jul 27 2001
13465bb6a25fSPoul-Henning Kamp        - More changes to make MSVC happy with the build; add a single
13475bb6a25fSPoul-Henning Kamp          workspace to support both the library and xmlwf application.
13485bb6a25fSPoul-Henning Kamp        - Added a Windows installer for Windows users; includes
13495bb6a25fSPoul-Henning Kamp          xmlwf.exe.
13505bb6a25fSPoul-Henning Kamp        - Added compile-time constants that can be used to determine the
13515bb6a25fSPoul-Henning Kamp          Expat version
13525bb6a25fSPoul-Henning Kamp        - Removed a lot of GNU-specific dependencies to aide portability
13535bb6a25fSPoul-Henning Kamp          among the various Unix flavors.
13545bb6a25fSPoul-Henning Kamp        - Fix the UTF-8 BOM bug.
13555bb6a25fSPoul-Henning Kamp        - Cleaned up warning messages for several compilers.
13565bb6a25fSPoul-Henning Kamp        - Added the -Wall, -Wstrict-prototypes options for GCC.
13575bb6a25fSPoul-Henning Kamp
13585bb6a25fSPoul-Henning KampRelease 1.95.1 Sun Oct 22 15:11:36 EDT 2000
13595bb6a25fSPoul-Henning Kamp        - Changes to get expat to build under Microsoft compiler
13605bb6a25fSPoul-Henning Kamp        - Removed all aborts and instead return an UNEXPECTED_STATE error.
13615bb6a25fSPoul-Henning Kamp        - Fixed a bug where a stray '%' in an entity value would cause an
13625bb6a25fSPoul-Henning Kamp          abort.
13635bb6a25fSPoul-Henning Kamp        - Defined XML_SetEndNamespaceDeclHandler. Thanks to Darryl Miles for
13645bb6a25fSPoul-Henning Kamp          finding this oversight.
13655bb6a25fSPoul-Henning Kamp        - Changed default patterns in lib/Makefile.in to fit non-GNU makes
13665bb6a25fSPoul-Henning Kamp          Thanks to robin@unrated.net for reporting and providing an
13675bb6a25fSPoul-Henning Kamp          account to test on.
13685bb6a25fSPoul-Henning Kamp        - The reference had the wrong label for XML_SetStartNamespaceDecl.
13695bb6a25fSPoul-Henning Kamp          Reported by an anonymous user.
13705bb6a25fSPoul-Henning Kamp
13715bb6a25fSPoul-Henning KampRelease 1.95.0 Fri Sep 29 2000
13725bb6a25fSPoul-Henning Kamp        - XML_ParserCreate_MM
13735bb6a25fSPoul-Henning Kamp                Allows you to set a memory management suite to replace the
13745bb6a25fSPoul-Henning Kamp                standard malloc,realloc, and free.
13755bb6a25fSPoul-Henning Kamp        - XML_SetReturnNSTriplet
13765bb6a25fSPoul-Henning Kamp                If you turn this feature on when namespace processing is in
13775bb6a25fSPoul-Henning Kamp                effect, then qualified, prefixed element and attribute names
13785bb6a25fSPoul-Henning Kamp                are returned as "uri|name|prefix" where '|' is whatever
13795bb6a25fSPoul-Henning Kamp                separator character is used in namespace processing.
13805bb6a25fSPoul-Henning Kamp        - Merged in features from perl-expat
13815bb6a25fSPoul-Henning Kamp                o XML_SetElementDeclHandler
13825bb6a25fSPoul-Henning Kamp                o XML_SetAttlistDeclHandler
13835bb6a25fSPoul-Henning Kamp                o XML_SetXmlDeclHandler
13845bb6a25fSPoul-Henning Kamp                o XML_SetEntityDeclHandler
13855bb6a25fSPoul-Henning Kamp                o StartDoctypeDeclHandler takes 3 additional parameters:
13865bb6a25fSPoul-Henning Kamp                        sysid, pubid, has_internal_subset
13875bb6a25fSPoul-Henning Kamp                o Many paired handler setters (like XML_SetElementHandler)
13885bb6a25fSPoul-Henning Kamp                  now have corresponding individual handler setters
13895bb6a25fSPoul-Henning Kamp                o XML_GetInputContext for getting the input context of
13905bb6a25fSPoul-Henning Kamp                  the current parse position.
13915bb6a25fSPoul-Henning Kamp        - Added reference material
13925bb6a25fSPoul-Henning Kamp        - Packaged into a distribution that builds a sharable library
1393