xref: /freebsd/contrib/expat/Changes (revision 908f215e80fa482aa953c39afa6bb516f561fc00)
1ffd294a1SEnji Cooper                           __  __            _
2ffd294a1SEnji Cooper                        ___\ \/ /_ __   __ _| |_
3ffd294a1SEnji Cooper                       / _ \\  /| '_ \ / _` | __|
4ffd294a1SEnji Cooper                      |  __//  \| |_) | (_| | |_
5ffd294a1SEnji Cooper                       \___/_/\_\ .__/ \__,_|\__|
6ffd294a1SEnji Cooper                                |_| XML parser
7ffd294a1SEnji Cooper
8ffd294a1SEnji Cooper!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
9ffd294a1SEnji Cooper!! <blink>Expat is UNDERSTAFFED and WITHOUT FUNDING.</blink>                 !!
10ffd294a1SEnji Cooper!!                 ~~~~~~~~~~~~                                              !!
11ffd294a1SEnji Cooper!! The following topics need *additional skilled C developers* to progress   !!
12ffd294a1SEnji Cooper!! in a timely manner or at all (loosely ordered by descending priority):    !!
13ffd294a1SEnji Cooper!!                                                                           !!
14ffd294a1SEnji Cooper!! - <blink>fixing a complex non-public security issue</blink>,              !!
15ffd294a1SEnji Cooper!! - teaming up on researching and fixing future security reports and        !!
16ffd294a1SEnji Cooper!!   ClusterFuzz findings with few-days-max response times in communication  !!
17ffd294a1SEnji Cooper!!   in order to (1) have a sound fix ready before the end of a 90 days      !!
18ffd294a1SEnji Cooper!!   grace period and (2) in a sustainable manner,                           !!
19ffd294a1SEnji Cooper!! - implementing and auto-testing XML 1.0r5 support                         !!
20ffd294a1SEnji Cooper!!   (needs discussion before pull requests),                                !!
21ffd294a1SEnji Cooper!! - smart ideas on fixing the Autotools CMake files generation issue        !!
22ffd294a1SEnji Cooper!!   without breaking CI (needs discussion before pull requests),            !!
23ffd294a1SEnji Cooper!! - the Windows binaries topic (needs requirements engineering first),      !!
24ffd294a1SEnji Cooper!! - pushing migration from `int` to `size_t` further                        !!
25ffd294a1SEnji Cooper!!   including edge-cases test coverage (needs discussion before anything).  !!
26ffd294a1SEnji Cooper!!                                                                           !!
27ffd294a1SEnji Cooper!! For details, please reach out via e-mail to sebastian@pipping.org so we   !!
28ffd294a1SEnji Cooper!! can schedule a voice call on the topic, in English or German.             !!
29ffd294a1SEnji Cooper!!                                                                           !!
30ffd294a1SEnji Cooper!! THANK YOU!                        Sebastian Pipping -- Berlin, 2024-03-09 !!
31ffd294a1SEnji Cooper!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
32ffd294a1SEnji Cooper
33*908f215eSXin LIRelease 2.6.4 Wed November 6 2024
34*908f215eSXin LI        Security fixes:
35*908f215eSXin LI            #915  CVE-2024-50602 -- Fix crash within function XML_ResumeParser
36*908f215eSXin LI                    from a NULL pointer dereference by disallowing function
37*908f215eSXin LI                    XML_StopParser to (stop or) suspend an unstarted parser.
38*908f215eSXin LI                    A new error code XML_ERROR_NOT_STARTED was introduced to
39*908f215eSXin LI                    properly communicate this situation.  // CWE-476 CWE-754
40*908f215eSXin LI
41*908f215eSXin LI        Other changes:
42*908f215eSXin LI            #903  CMake: Add alias target "expat::expat"
43*908f215eSXin LI            #905  docs: Document use via CMake >=3.18 with FetchContent
44*908f215eSXin LI                    and SOURCE_SUBDIR and its consequences
45*908f215eSXin LI            #902  tests: Reduce use of global parser instance
46*908f215eSXin LI            #904  tests: Resolve duplicate handler
47*908f215eSXin LI       #317 #918  tests: Improve tests on doctype closing (ex CVE-2019-15903)
48*908f215eSXin LI            #914  Fix signedness of format strings
49*908f215eSXin LI       #919 #920  Version info bumped from 10:3:9 (libexpat*.so.1.9.3)
50*908f215eSXin LI                    to 11:0:10 (libexpat*.so.1.10.0); see https://verbump.de/
51*908f215eSXin LI                    for what these numbers do
52*908f215eSXin LI
53*908f215eSXin LI        Infrastructure:
54*908f215eSXin LI            #907  CI: Upgrade Clang from 18 to 19
55*908f215eSXin LI            #913  CI: Drop macos-12 and add macos-15
56*908f215eSXin LI            #910  CI: Adapt to breaking changes in GitHub Actions
57*908f215eSXin LI            #898  Add missing entries to .gitignore
58*908f215eSXin LI
59*908f215eSXin LI        Special thanks to:
60*908f215eSXin LI            Hanno Böck
61*908f215eSXin LI            José Eduardo Gutiérrez Conejo
62*908f215eSXin LI            José Ricardo Cardona Quesada
63*908f215eSXin LI
64ffd294a1SEnji CooperRelease 2.6.3 Wed September 4 2024
65ffd294a1SEnji Cooper        Security fixes:
66ffd294a1SEnji Cooper       #887 #890  CVE-2024-45490 -- Calling function XML_ParseBuffer with
67ffd294a1SEnji Cooper                    len < 0 without noticing and then calling XML_GetBuffer
68ffd294a1SEnji Cooper                    will have XML_ParseBuffer fail to recognize the problem
69ffd294a1SEnji Cooper                    and XML_GetBuffer corrupt memory.
70ffd294a1SEnji Cooper                    With the fix, XML_ParseBuffer now complains with error
71ffd294a1SEnji Cooper                    XML_ERROR_INVALID_ARGUMENT just like sibling XML_Parse
72ffd294a1SEnji Cooper                    has been doing since Expat 2.2.1, and now documented.
73ffd294a1SEnji Cooper                    Impact is denial of service to potentially artitrary code
74ffd294a1SEnji Cooper                    execution.
75ffd294a1SEnji Cooper       #888 #891  CVE-2024-45491 -- Internal function dtdCopy can have an
76ffd294a1SEnji Cooper                    integer overflow for nDefaultAtts on 32-bit platforms
77ffd294a1SEnji Cooper                    (where UINT_MAX equals SIZE_MAX).
78ffd294a1SEnji Cooper                    Impact is denial of service to potentially artitrary code
79ffd294a1SEnji Cooper                    execution.
80ffd294a1SEnji Cooper       #889 #892  CVE-2024-45492 -- Internal function nextScaffoldPart can
81ffd294a1SEnji Cooper                    have an integer overflow for m_groupSize on 32-bit
82ffd294a1SEnji Cooper                    platforms (where UINT_MAX equals SIZE_MAX).
83ffd294a1SEnji Cooper                    Impact is denial of service to potentially artitrary code
84ffd294a1SEnji Cooper                    execution.
85ffd294a1SEnji Cooper
86ffd294a1SEnji Cooper        Other changes:
87ffd294a1SEnji Cooper       #851 #879  Autotools: Sync CMake templates with CMake 3.28
88ffd294a1SEnji Cooper            #853  Autotools: Always provide path to find(1) for portability
89ffd294a1SEnji Cooper            #861  Autotools: Ensure that the m4 directory always exists.
90ffd294a1SEnji Cooper            #870  Autotools: Simplify handling of SIZEOF_VOID_P
91ffd294a1SEnji Cooper            #869  Autotools: Support non-GNU sed
92ffd294a1SEnji Cooper            #856  Autotools|CMake: Fix main() to main(void)
93ffd294a1SEnji Cooper            #865  Autotools|CMake: Fix compile tests for HAVE_SYSCALL_GETRANDOM
94ffd294a1SEnji Cooper            #863  Autotools|CMake: Stop requiring dos2unix
95ffd294a1SEnji Cooper       #854 #855  CMake: Fix check for symbols size_t and off_t
96ffd294a1SEnji Cooper            #864  docs|tests: Convert README to Markdown and update
97ffd294a1SEnji Cooper            #741  Windows: Drop support for Visual Studio <=15.0/2017
98ffd294a1SEnji Cooper            #886  Drop needless XML_DTD guards around is_param access
99ffd294a1SEnji Cooper            #885  Fix typo in a code comment
100ffd294a1SEnji Cooper       #894 #896  Version info bumped from 10:2:9 (libexpat*.so.1.9.2)
101ffd294a1SEnji Cooper                    to 10:3:9 (libexpat*.so.1.9.3); see https://verbump.de/
102ffd294a1SEnji Cooper                    for what these numbers do
103ffd294a1SEnji Cooper
104ffd294a1SEnji Cooper        Infrastructure:
105ffd294a1SEnji Cooper            #880  Readme: Promote the call for help
106ffd294a1SEnji Cooper            #868  CI: Fix various issues
107ffd294a1SEnji Cooper            #849  CI: Allow triggering GitHub Actions workflows manually
108ffd294a1SEnji Cooper    #851 #872 ..
109ffd294a1SEnji Cooper       #873 #879  CI: Adapt to breaking changes in GitHub Actions
110ffd294a1SEnji Cooper
111ffd294a1SEnji Cooper        Special thanks to:
112ffd294a1SEnji Cooper            Alexander Bluhm
113ffd294a1SEnji Cooper            Berkay Eren Ürün
114ffd294a1SEnji Cooper            Dag-Erling Smørgrav
115ffd294a1SEnji Cooper            Ferenc Géczi
116ffd294a1SEnji Cooper            TaiYou
117ffd294a1SEnji Cooper
118ffd294a1SEnji CooperRelease 2.6.2 Wed March 13 2024
119ffd294a1SEnji Cooper        Security fixes:
120ffd294a1SEnji Cooper       #839 #842  CVE-2024-28757 -- Prevent billion laughs attacks with
121ffd294a1SEnji Cooper                    isolated use of external parsers.  Please see the commit
122ffd294a1SEnji Cooper                    message of commit 1d50b80cf31de87750103656f6eb693746854aa8
123ffd294a1SEnji Cooper                    for details.
124ffd294a1SEnji Cooper
125ffd294a1SEnji Cooper        Bug fixes:
126ffd294a1SEnji Cooper       #839 #841  Reject direct parameter entity recursion
127ffd294a1SEnji Cooper                    and avoid the related undefined behavior
128ffd294a1SEnji Cooper
129ffd294a1SEnji Cooper        Other changes:
130ffd294a1SEnji Cooper            #847  Autotools: Fix build for DOCBOOK_TO_MAN containing spaces
131ffd294a1SEnji Cooper            #837  Add missing #821 and #824 to 2.6.1 change log
132ffd294a1SEnji Cooper       #838 #843  Version info bumped from 10:1:9 (libexpat*.so.1.9.1)
133ffd294a1SEnji Cooper                    to 10:2:9 (libexpat*.so.1.9.2); see https://verbump.de/
134ffd294a1SEnji Cooper                    for what these numbers do
135ffd294a1SEnji Cooper
136ffd294a1SEnji Cooper        Special thanks to:
137ffd294a1SEnji Cooper            Philippe Antoine
138ffd294a1SEnji Cooper            Tomas Korbar
139ffd294a1SEnji Cooper                 and
140ffd294a1SEnji Cooper            Clang UndefinedBehaviorSanitizer
141ffd294a1SEnji Cooper            OSS-Fuzz / ClusterFuzz
142ffd294a1SEnji Cooper
143ffd294a1SEnji CooperRelease 2.6.1 Thu February 29 2024
144ffd294a1SEnji Cooper        Bug fixes:
145ffd294a1SEnji Cooper            #817  Make tests independent of CPU speed, and thus more robust
146ffd294a1SEnji Cooper       #828 #836  Expose billion laughs API with XML_DTD defined and
147ffd294a1SEnji Cooper                    XML_GE undefined, regression from 2.6.0
148ffd294a1SEnji Cooper
149ffd294a1SEnji Cooper        Other changes:
150ffd294a1SEnji Cooper            #829  Hide test-only code behind new internal macro
151ffd294a1SEnji Cooper            #833  Autotools: Reject expat_config.h.in defining SIZEOF_VOID_P
152ffd294a1SEnji Cooper       #821 #824  Autotools: Fix "make clean" for case:
153ffd294a1SEnji Cooper                    ./configure --without-docbook && make clean all
154ffd294a1SEnji Cooper            #819  Address compiler warnings
155ffd294a1SEnji Cooper       #832 #834  Version info bumped from 10:0:9 (libexpat*.so.1.9.0)
156ffd294a1SEnji Cooper                    to 10:1:9 (libexpat*.so.1.9.1); see https://verbump.de/
157ffd294a1SEnji Cooper                    for what these numbers do
158ffd294a1SEnji Cooper
159ffd294a1SEnji Cooper        Infrastructure:
160ffd294a1SEnji Cooper            #818  CI: Adapt to breaking changes in clang-format
161ffd294a1SEnji Cooper
162ffd294a1SEnji Cooper        Special thanks to:
163ffd294a1SEnji Cooper            David Hall
164ffd294a1SEnji Cooper            Snild Dolkow
1650a48773fSEric van Gyzen
1664543ef51SXin LIRelease 2.6.0 Tue February 6 2024
1674543ef51SXin LI        Security fixes:
1684543ef51SXin LI      #789 #814  CVE-2023-52425 -- Fix quadratic runtime issues with big tokens
1694543ef51SXin LI                   that can cause denial of service, in partial where
1704543ef51SXin LI                   dealing with compressed XML input.  Applications
1714543ef51SXin LI                   that parsed a document in one go -- a single call to
1724543ef51SXin LI                   functions XML_Parse or XML_ParseBuffer -- were not affected.
1734543ef51SXin LI                   The smaller the chunks/buffers you use for parsing
1744543ef51SXin LI                   previously, the bigger the problem prior to the fix.
1754543ef51SXin LI                   Backporters should be careful to no omit parts of
1764543ef51SXin LI                   pull request #789 and to include earlier pull request #771,
1774543ef51SXin LI                   in order to not break the fix.
1784543ef51SXin LI           #777  CVE-2023-52426 -- Fix billion laughs attacks for users
1794543ef51SXin LI                   compiling *without* XML_DTD defined (which is not common).
1804543ef51SXin LI                   Users with XML_DTD defined have been protected since
1814543ef51SXin LI                   Expat >=2.4.0 (and that was CVE-2013-0340 back then).
1824543ef51SXin LI
1834543ef51SXin LI        Bug fixes:
1844543ef51SXin LI            #753  Fix parse-size-dependent "invalid token" error for
1854543ef51SXin LI                    external entities that start with a byte order mark
1864543ef51SXin LI            #780  Fix NULL pointer dereference in setContext via
1874543ef51SXin LI                    XML_ExternalEntityParserCreate for compilation with
1884543ef51SXin LI                    XML_DTD undefined
1894543ef51SXin LI       #812 #813  Protect against closing entities out of order
1904543ef51SXin LI
1914543ef51SXin LI        Other changes:
1924543ef51SXin LI            #723  Improve support for arc4random/arc4random_buf
1934543ef51SXin LI       #771 #788  Improve buffer growth in XML_GetBuffer and XML_Parse
1944543ef51SXin LI       #761 #770  xmlwf: Support --help and --version
1954543ef51SXin LI       #759 #770  xmlwf: Support custom buffer size for XML_GetBuffer and read
1964543ef51SXin LI            #744  xmlwf: Improve language and URL clickability in help output
1974543ef51SXin LI            #673  examples: Add new example "element_declarations.c"
1984543ef51SXin LI            #764  Be stricter about macro XML_CONTEXT_BYTES at build time
1994543ef51SXin LI            #765  Make inclusion to expat_config.h consistent
2004543ef51SXin LI       #726 #727  Autotools: configure.ac: Support --disable-maintainer-mode
2014543ef51SXin LI    #678 #705 ..
2024543ef51SXin LI  #706 #733 #792  Autotools: Sync CMake templates with CMake 3.26
2034543ef51SXin LI            #795  Autotools: Make installation of shipped man page doc/xmlwf.1
2044543ef51SXin LI                    independent of docbook2man availability
2054543ef51SXin LI            #815  Autotools|CMake: Add missing -DXML_STATIC to pkg-config file
2064543ef51SXin LI                    section "Cflags.private" in order to fix compilation
2074543ef51SXin LI                    against static libexpat using pkg-config on Windows
2084543ef51SXin LI       #724 #751  Autotools|CMake: Require a C99 compiler
2094543ef51SXin LI                    (a de-facto requirement already since Expat 2.2.2 of 2017)
2104543ef51SXin LI            #793  Autotools|CMake: Fix PACKAGE_BUGREPORT variable
2114543ef51SXin LI       #750 #786  Autotools|CMake: Make test suite require a C++11 compiler
2124543ef51SXin LI            #749  CMake: Require CMake >=3.5.0
2134543ef51SXin LI            #672  CMake: Lowercase off_t and size_t to help a bug in Meson
2144543ef51SXin LI            #746  CMake: Sort xmlwf sources alphabetically
2154543ef51SXin LI            #785  CMake|Windows: Fix generation of DLL file version info
2164543ef51SXin LI            #790  CMake: Build tests/benchmark/benchmark.c as well for
2174543ef51SXin LI                    a build with -DEXPAT_BUILD_TESTS=ON
2184543ef51SXin LI       #745 #757  docs: Document the importance of isFinal + adjust tests
2194543ef51SXin LI                    accordingly
2204543ef51SXin LI            #736  docs: Improve use of "NULL" and "null"
2214543ef51SXin LI            #713  docs: Be specific about version of XML (XML 1.0r4)
2224543ef51SXin LI                    and version of C (C99); (XML 1.0r5 will need a sponsor.)
2234543ef51SXin LI            #762  docs: reference.html: Promote function XML_ParseBuffer more
2244543ef51SXin LI            #779  docs: reference.html: Add HTML anchors to XML_* macros
2254543ef51SXin LI            #760  docs: reference.html: Upgrade to OK.css 1.2.0
2264543ef51SXin LI       #763 #739  docs: Fix typos
2274543ef51SXin LI            #696  docs|CI: Use HTTPS URLs instead of HTTP at various places
2284543ef51SXin LI    #669 #670 ..
2294543ef51SXin LI    #692 #703 ..
2304543ef51SXin LI       #733 #772  Address compiler warnings
2314543ef51SXin LI       #798 #800  Address clang-tidy warnings
2324543ef51SXin LI       #775 #776  Version info bumped from 9:10:8 (libexpat*.so.1.8.10)
2334543ef51SXin LI                    to 10:0:9 (libexpat*.so.1.9.0); see https://verbump.de/
2344543ef51SXin LI                    for what these numbers do
2354543ef51SXin LI
2364543ef51SXin LI        Infrastructure:
2374543ef51SXin LI       #700 #701  docs: Document security policy in file SECURITY.md
2384543ef51SXin LI            #766  docs: Improve parse buffer variables in-code documentation
2394543ef51SXin LI    #674 #738 ..
2404543ef51SXin LI    #740 #747 ..
2414543ef51SXin LI  #748 #781 #782  Refactor coverage and conformance tests
2424543ef51SXin LI       #714 #716  Refactor debug level variables to unsigned long
2434543ef51SXin LI            #671  Improve handling of empty environment variable value
2444543ef51SXin LI                    in function getDebugLevel (without visible user effect)
2454543ef51SXin LI    #755 #774 ..
2464543ef51SXin LI    #758 #783 ..
2474543ef51SXin LI       #784 #787  tests: Improve test coverage with regard to parse chunk size
2484543ef51SXin LI  #660 #797 #801  Fuzzing: Improve fuzzing coverage
2494543ef51SXin LI       #367 #799  Fuzzing|CI: Start running OSS-Fuzz fuzzing regression tests
2504543ef51SXin LI       #698 #721  CI: Resolve some Travis CI leftovers
2514543ef51SXin LI            #669  CI: Be robust towards absence of Git tags
2524543ef51SXin LI       #693 #694  CI: Set permissions to "contents: read" for security
2534543ef51SXin LI            #709  CI: Pin all GitHub Actions to specific commits for security
2544543ef51SXin LI            #739  CI: Reject spelling errors using codespell
2554543ef51SXin LI            #798  CI: Enforce clang-tidy clean code
2564543ef51SXin LI    #773 #808 ..
2574543ef51SXin LI       #809 #810  CI: Upgrade Clang from 15 to 18
2584543ef51SXin LI            #796  CI: Start using Clang's Control Flow Integrity sanitizer
2594543ef51SXin LI  #675 #720 #722  CI: Adapt to breaking changes in GitHub Actions Ubuntu images
2604543ef51SXin LI            #689  CI: Adapt to breaking changes in Clang/LLVM Debian packaging
2614543ef51SXin LI            #763  CI: Adapt to breaking changes in codespell
2624543ef51SXin LI            #803  CI: Adapt to breaking changes in Cppcheck
2634543ef51SXin LI
2644543ef51SXin LI        Special thanks to:
2654543ef51SXin LI            Ivan Galkin
2664543ef51SXin LI            Joyce Brum
2674543ef51SXin LI            Philippe Antoine
2684543ef51SXin LI            Rhodri James
2694543ef51SXin LI            Snild Dolkow
2704543ef51SXin LI            spookyahell
2714543ef51SXin LI            Steven Garske
2724543ef51SXin LI                 and
2734543ef51SXin LI            Clang AddressSanitizer
2744543ef51SXin LI            Clang UndefinedBehaviorSanitizer
2754543ef51SXin LI            codespell
2764543ef51SXin LI            GCC Farm Project
2774543ef51SXin LI            OSS-Fuzz
2784543ef51SXin LI            Sony Mobile
2794543ef51SXin LI
280dc58b3fcSXin LIRelease 2.5.0 Tue October 25 2022
281dc58b3fcSXin LI        Security fixes:
282dc58b3fcSXin LI  #616 #649 #650  CVE-2022-43680 -- Fix heap use-after-free after overeager
283dc58b3fcSXin LI                    destruction of a shared DTD in function
284dc58b3fcSXin LI                    XML_ExternalEntityParserCreate in out-of-memory situations.
285dc58b3fcSXin LI                    Expected impact is denial of service or potentially
286dc58b3fcSXin LI                    arbitrary code execution.
287dc58b3fcSXin LI
288dc58b3fcSXin LI        Bug fixes:
2894543ef51SXin LI       #612 #645  Fix corruption from undefined entities
290dc58b3fcSXin LI       #613 #654  Fix case when parsing was suspended while processing nested
291dc58b3fcSXin LI                    entities
292dc58b3fcSXin LI  #616 #652 #653  Stop leaking opening tag bindings after a closing tag
293dc58b3fcSXin LI                    mismatch error where a parser is reset through
294dc58b3fcSXin LI                    XML_ParserReset and then reused to parse
295dc58b3fcSXin LI            #656  CMake: Fix generation of pkg-config file
296dc58b3fcSXin LI            #658  MinGW|CMake: Fix static library name
297dc58b3fcSXin LI
298dc58b3fcSXin LI        Other changes:
299dc58b3fcSXin LI            #663  Protect header expat_config.h from multiple inclusion
300dc58b3fcSXin LI            #666  examples: Make use of XML_GetBuffer and be more
301dc58b3fcSXin LI                    consistent across examples
302dc58b3fcSXin LI            #648  Address compiler warnings
303dc58b3fcSXin LI       #667 #668  Version info bumped from 9:9:8 to 9:10:8;
304dc58b3fcSXin LI                    see https://verbump.de/ for what these numbers do
305dc58b3fcSXin LI
306dc58b3fcSXin LI        Special thanks to:
307dc58b3fcSXin LI            Jann Horn
308dc58b3fcSXin LI            Mark Brand
309dc58b3fcSXin LI            Osyotr
310dc58b3fcSXin LI            Rhodri James
311dc58b3fcSXin LI                 and
312dc58b3fcSXin LI            Google Project Zero
313dc58b3fcSXin LI
31471f0c44aSXin LIRelease 2.4.9 Tue September 20 2022
31571f0c44aSXin LI        Security fixes:
31671f0c44aSXin LI       #629 #640  CVE-2022-40674 -- Heap use-after-free vulnerability in
31771f0c44aSXin LI                    function doContent. Expected impact is denial of service
31871f0c44aSXin LI                    or potentially arbitrary code execution.
31971f0c44aSXin LI
32071f0c44aSXin LI        Bug fixes:
32171f0c44aSXin LI            #634  MinGW: Fix mis-compilation for -D__USE_MINGW_ANSI_STDIO=0
32271f0c44aSXin LI            #614  docs: Fix documentation on effect of switch XML_DTD on
32371f0c44aSXin LI                    symbol visibility in doc/reference.html
32471f0c44aSXin LI
32571f0c44aSXin LI        Other changes:
32671f0c44aSXin LI            #638  MinGW: Make fix-xmltest-log.sh drop more Wine bug output
32771f0c44aSXin LI       #596 #625  Autotools: Sync CMake templates with CMake 3.22
32871f0c44aSXin LI            #608  CMake: Migrate from use of CMAKE_*_POSTFIX to
32971f0c44aSXin LI                    dedicated variables EXPAT_*_POSTFIX to stop affecting
33071f0c44aSXin LI                    other projects
33171f0c44aSXin LI       #597 #599  Windows|CMake: Add missing -DXML_STATIC to test runners
33271f0c44aSXin LI                    and fuzzers
33371f0c44aSXin LI       #512 #621  Windows|CMake: Render .def file from a template to fix
33471f0c44aSXin LI                    linking with -DEXPAT_DTD=OFF and/or -DEXPAT_ATTR_INFO=ON
33571f0c44aSXin LI       #611 #621  MinGW|CMake: Apply MSVC .def file when linking
33671f0c44aSXin LI       #622 #624  MinGW|CMake: Sync library name with GNU Autotools,
33771f0c44aSXin LI                    i.e. produce libexpat-1.dll rather than libexpat.dll
33871f0c44aSXin LI                    by default.  Filename libexpat.dll.a is unaffected.
33971f0c44aSXin LI            #632  MinGW|CMake: Set missing variable CMAKE_RC_COMPILER in
34071f0c44aSXin LI                    toolchain file "cmake/mingw-toolchain.cmake" to avoid
34171f0c44aSXin LI                    error "windres: Command not found" on e.g. Ubuntu 20.04
34271f0c44aSXin LI       #597 #627  CMake: Unify inconsistent use of set() and option() in
34371f0c44aSXin LI                    context of public build time options to take need for
34471f0c44aSXin LI                    set(.. FORCE) in projects using Expat by means of
34571f0c44aSXin LI                    add_subdirectory(..) off Expat's users' shoulders
34671f0c44aSXin LI       #626 #641  Stop exporting API symbols when building a static library
34771f0c44aSXin LI            #644  Resolve use of deprecated "fgrep" by "grep -F"
34871f0c44aSXin LI            #620  CMake: Make documentation on variables a bit more consistent
34971f0c44aSXin LI            #636  CMake: Drop leading whitespace from a #cmakedefine line in
35071f0c44aSXin LI                    file expat_config.h.cmake
35171f0c44aSXin LI            #594  xmlwf: Fix harmless variable mix-up in function nsattcmp
35271f0c44aSXin LI  #592 #593 #610  Address Cppcheck warnings
35371f0c44aSXin LI            #643  Address Clang 15 compiler warnings
35471f0c44aSXin LI       #642 #644  Version info bumped from 9:8:8 to 9:9:8;
35571f0c44aSXin LI                    see https://verbump.de/ for what these numbers do
35671f0c44aSXin LI
35771f0c44aSXin LI        Infrastructure:
35871f0c44aSXin LI       #597 #598  CI: Windows: Start covering MSVC 2022
35971f0c44aSXin LI            #619  CI: macOS: Migrate off deprecated macOS 10.15
36071f0c44aSXin LI            #632  CI: Linux: Make migration off deprecated Ubuntu 18.04 work
36171f0c44aSXin LI            #643  CI: Upgrade Clang from 14 to 15
36271f0c44aSXin LI            #637  apply-clang-format.sh: Add support for BSD find
36371f0c44aSXin LI            #633  coverage.sh: Exclude MinGW headers
36471f0c44aSXin LI            #635  coverage.sh: Fix name collision for -funsigned-char
36571f0c44aSXin LI
36671f0c44aSXin LI        Special thanks to:
36771f0c44aSXin LI            David Faure
36871f0c44aSXin LI            Felix Wilhelm
36971f0c44aSXin LI            Frank Bergmann
37071f0c44aSXin LI            Rhodri James
37171f0c44aSXin LI            Rosen Penev
37271f0c44aSXin LI            Thijs Schreijer
37371f0c44aSXin LI            Vincent Torri
37471f0c44aSXin LI                 and
37571f0c44aSXin LI            Google Project Zero
37671f0c44aSXin LI
37771f0c44aSXin LIRelease 2.4.8 Mon March 28 2022
37871f0c44aSXin LI        Other changes:
37971f0c44aSXin LI            #587  pkg-config: Move "-lm" to section "Libs.private"
38071f0c44aSXin LI            #587  CMake|MSVC: Fix pkg-config section "Libs"
38171f0c44aSXin LI        #55 #582  CMake|macOS: Start using linker arguments
38271f0c44aSXin LI                    "-compatibility_version <version>" and
38371f0c44aSXin LI                    "-current_version <version>" in a way compatible with
38471f0c44aSXin LI                    GNU Libtool
38571f0c44aSXin LI       #590 #591  Version info bumped from 9:7:8 to 9:8:8;
38671f0c44aSXin LI                    see https://verbump.de/ for what these numbers do
38771f0c44aSXin LI
38871f0c44aSXin LI        Infrastructure:
38971f0c44aSXin LI            #589  CI: Upgrade Clang from 13 to 14
39071f0c44aSXin LI
39171f0c44aSXin LI        Special thanks to:
39271f0c44aSXin LI            evpobr
39371f0c44aSXin LI            Kai Pastor
39471f0c44aSXin LI            Sam James
39571f0c44aSXin LI
3967ed8e142SXin LIRelease 2.4.7 Fri March 4 2022
3977ed8e142SXin LI        Bug fixes:
3987ed8e142SXin LI       #572 #577  Relax fix to CVE-2022-25236 (introduced with release 2.4.5)
3997ed8e142SXin LI                    with regard to all valid URI characters (RFC 3986),
4007ed8e142SXin LI                    i.e. the following set (excluding whitespace):
4017ed8e142SXin LI                    ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz
4027ed8e142SXin LI                    0123456789 % -._~ :/?#[]@ !$&'()*+,;=
4037ed8e142SXin LI
4047ed8e142SXin LI        Other changes:
4057ed8e142SXin LI  #555 #570 #581  CMake|Windows: Store Expat version in the DLL
4067ed8e142SXin LI            #577  Document consequences of namespace separator choices not just
4077ed8e142SXin LI                    in doc/reference.html but also in header <expat.h>
4087ed8e142SXin LI            #577  Document Expat's lack of validation of namespace URIs against
4097ed8e142SXin LI                    RFC 3986, and that the XML 1.0r4 specification doesn't
4107ed8e142SXin LI                    require Expat to validate namespace URIs, and that Expat
4117ed8e142SXin LI                    may do more in that regard in future releases.
4127ed8e142SXin LI                    If you find need for strict RFC 3986 URI validation on
4137ed8e142SXin LI                    application level today, https://uriparser.github.io/ may
4147ed8e142SXin LI                    be of interest.
4157ed8e142SXin LI            #579  Fix documentation of XML_EndDoctypeDeclHandler in <expat.h>
4167ed8e142SXin LI            #575  Document that a call to XML_FreeContentModel can be done at
4177ed8e142SXin LI                    a later time from outside the element declaration handler
4187ed8e142SXin LI            #574  Make hardcoded namespace URIs easier to find in code
4197ed8e142SXin LI            #573  Update documentation on use of XML_POOR_ENTOPY on Solaris
4207ed8e142SXin LI       #569 #571  tests: Resolve use of macros NAN and INFINITY for GNU G++
4217ed8e142SXin LI                    4.8.2 on Solaris.
4227ed8e142SXin LI       #578 #580  Version info bumped from 9:6:8 to 9:7:8;
4237ed8e142SXin LI                    see https://verbump.de/ for what these numbers do
4247ed8e142SXin LI
4257ed8e142SXin LI        Special thanks to:
4267ed8e142SXin LI            Jeffrey Walton
4277ed8e142SXin LI            Johnny Jazeix
4287ed8e142SXin LI            Thijs Schreijer
4297ed8e142SXin LI
430ac69e5d4SEric van GyzenRelease 2.4.6 Sun February 20 2022
431ac69e5d4SEric van Gyzen        Bug fixes:
432ac69e5d4SEric van Gyzen            #566  Fix a regression introduced by the fix for CVE-2022-25313
433ac69e5d4SEric van Gyzen                    in release 2.4.5 that affects applications that (1)
434ac69e5d4SEric van Gyzen                    call function XML_SetElementDeclHandler and (2) are
435ac69e5d4SEric van Gyzen                    parsing XML that contains nested element declarations
436ac69e5d4SEric van Gyzen                    (e.g. "<!ELEMENT junk ((bar|foo|xyz+), zebra*)>").
437ac69e5d4SEric van Gyzen
438ac69e5d4SEric van Gyzen        Other changes:
439ac69e5d4SEric van Gyzen       #567 #568  Version info bumped from 9:5:8 to 9:6:8;
440ac69e5d4SEric van Gyzen                    see https://verbump.de/ for what these numbers do
441ac69e5d4SEric van Gyzen
442ac69e5d4SEric van Gyzen        Special thanks to:
443ac69e5d4SEric van Gyzen            Matt Sergeant
444ac69e5d4SEric van Gyzen            Samanta Navarro
445ac69e5d4SEric van Gyzen            Sergei Trofimovich
446ac69e5d4SEric van Gyzen                 and
447ac69e5d4SEric van Gyzen            NixOS
448ac69e5d4SEric van Gyzen            Perl XML::Parser
449ac69e5d4SEric van Gyzen
450ac69e5d4SEric van GyzenRelease 2.4.5 Fri February 18 2022
451ac69e5d4SEric van Gyzen        Security fixes:
452ac69e5d4SEric van Gyzen            #562  CVE-2022-25235 -- Passing malformed 2- and 3-byte UTF-8
453ac69e5d4SEric van Gyzen                    sequences (e.g. from start tag names) to the XML
454ac69e5d4SEric van Gyzen                    processing application on top of Expat can cause
455ac69e5d4SEric van Gyzen                    arbitrary damage (e.g. code execution) depending
456ac69e5d4SEric van Gyzen                    on how invalid UTF-8 is handled inside the XML
457ac69e5d4SEric van Gyzen                    processor; validation was not their job but Expat's.
458ac69e5d4SEric van Gyzen                    Exploits with code execution are known to exist.
459ac69e5d4SEric van Gyzen            #561  CVE-2022-25236 -- Passing (one or more) namespace separator
460ac69e5d4SEric van Gyzen                    characters in "xmlns[:prefix]" attribute values
461ac69e5d4SEric van Gyzen                    made Expat send malformed tag names to the XML
462ac69e5d4SEric van Gyzen                    processor on top of Expat which can cause
463ac69e5d4SEric van Gyzen                    arbitrary damage (e.g. code execution) depending
464ac69e5d4SEric van Gyzen                    on such unexpectable cases are handled inside the XML
465ac69e5d4SEric van Gyzen                    processor; validation was not their job but Expat's.
466ac69e5d4SEric van Gyzen                    Exploits with code execution are known to exist.
467ac69e5d4SEric van Gyzen            #558  CVE-2022-25313 -- Fix stack exhaustion in doctype parsing
468ac69e5d4SEric van Gyzen                    that could be triggered by e.g. a 2 megabytes
469ac69e5d4SEric van Gyzen                    file with a large number of opening braces.
470ac69e5d4SEric van Gyzen                    Expected impact is denial of service or potentially
471ac69e5d4SEric van Gyzen                    arbitrary code execution.
472ac69e5d4SEric van Gyzen            #560  CVE-2022-25314 -- Fix integer overflow in function copyString;
473ac69e5d4SEric van Gyzen                    only affects the encoding name parameter at parser creation
474ac69e5d4SEric van Gyzen                    time which is often hardcoded (rather than user input),
475ac69e5d4SEric van Gyzen                    takes a value in the gigabytes to trigger, and a 64-bit
476ac69e5d4SEric van Gyzen                    machine.  Expected impact is denial of service.
477ac69e5d4SEric van Gyzen            #559  CVE-2022-25315 -- Fix integer overflow in function storeRawNames;
478ac69e5d4SEric van Gyzen                    needs input in the gigabytes and a 64-bit machine.
479ac69e5d4SEric van Gyzen                    Expected impact is denial of service or potentially
480ac69e5d4SEric van Gyzen                    arbitrary code execution.
481ac69e5d4SEric van Gyzen
482ac69e5d4SEric van Gyzen        Other changes:
483ac69e5d4SEric van Gyzen       #557 #564  Version info bumped from 9:4:8 to 9:5:8;
484ac69e5d4SEric van Gyzen                    see https://verbump.de/ for what these numbers do
485ac69e5d4SEric van Gyzen
486ac69e5d4SEric van Gyzen        Special thanks to:
487ac69e5d4SEric van Gyzen            Ivan Fratric
488ac69e5d4SEric van Gyzen            Samanta Navarro
489ac69e5d4SEric van Gyzen                 and
490ac69e5d4SEric van Gyzen            Google Project Zero
491ac69e5d4SEric van Gyzen            JetBrains
492ac69e5d4SEric van Gyzen
493ac69e5d4SEric van GyzenRelease 2.4.4 Sun January 30 2022
494ac69e5d4SEric van Gyzen        Security fixes:
495ac69e5d4SEric van Gyzen            #550  CVE-2022-23852 -- Fix signed integer overflow
496ac69e5d4SEric van Gyzen                    (undefined behavior) in function XML_GetBuffer
497ac69e5d4SEric van Gyzen                    (that is also called by function XML_Parse internally)
498ac69e5d4SEric van Gyzen                    for when XML_CONTEXT_BYTES is defined to >0 (which is both
499ac69e5d4SEric van Gyzen                    common and default).
500ac69e5d4SEric van Gyzen                    Impact is denial of service or more.
501ac69e5d4SEric van Gyzen            #551  CVE-2022-23990 -- Fix unsigned integer overflow in function
502ac69e5d4SEric van Gyzen                    doProlog triggered by large content in element type
503ac69e5d4SEric van Gyzen                    declarations when there is an element declaration handler
504ac69e5d4SEric van Gyzen                    present (from a prior call to XML_SetElementDeclHandler).
505ac69e5d4SEric van Gyzen                    Impact is denial of service or more.
506ac69e5d4SEric van Gyzen
507ac69e5d4SEric van Gyzen        Bug fixes:
508ac69e5d4SEric van Gyzen       #544 #545  xmlwf: Fix a memory leak on output file opening error
509ac69e5d4SEric van Gyzen
510ac69e5d4SEric van Gyzen        Other changes:
511ac69e5d4SEric van Gyzen            #546  Autotools: Fix broken CMake support under Cygwin
512ac69e5d4SEric van Gyzen            #554  Windows: Add missing files to the installer to fix
513ac69e5d4SEric van Gyzen                    compilation with CMake from installed sources
514ac69e5d4SEric van Gyzen       #552 #554  Version info bumped from 9:3:8 to 9:4:8;
515ac69e5d4SEric van Gyzen                    see https://verbump.de/ for what these numbers do
516ac69e5d4SEric van Gyzen
517ac69e5d4SEric van Gyzen        Special thanks to:
518ac69e5d4SEric van Gyzen            Carlo Bramini
519ac69e5d4SEric van Gyzen            hwt0415
520ac69e5d4SEric van Gyzen            Roland Illig
521ac69e5d4SEric van Gyzen            Samanta Navarro
522ac69e5d4SEric van Gyzen                 and
523ac69e5d4SEric van Gyzen            Clang LeakSan and the Clang team
524ac69e5d4SEric van Gyzen
525cc68614dSXin LIRelease 2.4.3 Sun January 16 2022
526cc68614dSXin LI        Security fixes:
527cc68614dSXin LI       #531 #534  CVE-2021-45960 -- Fix issues with left shifts by >=29 places
528cc68614dSXin LI                    resulting in
529cc68614dSXin LI                      a) realloc acting as free
530cc68614dSXin LI                      b) realloc allocating too few bytes
531cc68614dSXin LI                      c) undefined behavior
532cc68614dSXin LI                    depending on architecture and precise value
533cc68614dSXin LI                    for XML documents with >=2^27+1 prefixed attributes
534cc68614dSXin LI                    on a single XML tag a la
535cc68614dSXin LI                    "<r xmlns:a='[..]' a:a123='[..]' [..] />"
536cc68614dSXin LI                    where XML_ParserCreateNS is used to create the parser
537cc68614dSXin LI                    (which needs argument "-n" when running xmlwf).
538cc68614dSXin LI                    Impact is denial of service, or more.
539cc68614dSXin LI       #532 #538  CVE-2021-46143 (ZDI-CAN-16157) -- Fix integer overflow
540cc68614dSXin LI                    on variable m_groupSize in function doProlog leading
541cc68614dSXin LI                    to realloc acting as free.
542cc68614dSXin LI                    Impact is denial of service or more.
543cc68614dSXin LI            #539  CVE-2022-22822 to CVE-2022-22827 -- Prevent integer overflows
544cc68614dSXin LI                    near memory allocation at multiple places.  Mitre assigned
545cc68614dSXin LI                    a dedicated CVE for each involved internal C function:
546cc68614dSXin LI                    - CVE-2022-22822 for function addBinding
547cc68614dSXin LI                    - CVE-2022-22823 for function build_model
548cc68614dSXin LI                    - CVE-2022-22824 for function defineAttribute
549cc68614dSXin LI                    - CVE-2022-22825 for function lookup
550cc68614dSXin LI                    - CVE-2022-22826 for function nextScaffoldPart
551cc68614dSXin LI                    - CVE-2022-22827 for function storeAtts
552cc68614dSXin LI                    Impact is denial of service or more.
553cc68614dSXin LI
554cc68614dSXin LI        Other changes:
555cc68614dSXin LI            #535  CMake: Make call to file(GENERATE [..]) work for CMake <3.19
556cc68614dSXin LI            #541  Autotools|CMake: MinGW: Make run.sh(.in) work for Cygwin
557cc68614dSXin LI                    and MSYS2 by not going through Wine on these platforms
558cc68614dSXin LI       #527 #528  Address compiler warnings
559cc68614dSXin LI       #533 #543  Version info bumped from 9:2:8 to 9:3:8;
560cc68614dSXin LI                    see https://verbump.de/ for what these numbers do
561cc68614dSXin LI
562cc68614dSXin LI        Infrastructure:
563cc68614dSXin LI            #536  CI: Check for realistic minimum CMake version
564cc68614dSXin LI       #529 #539  CI: Cover compilation with -m32
565cc68614dSXin LI            #529  CI: Store coverage reports as artifacts for download
566cc68614dSXin LI            #528  CI: Upgrade Clang from 11 to 13
567cc68614dSXin LI
568cc68614dSXin LI        Special thanks to:
569cc68614dSXin LI            An anonymous whitehat
570cc68614dSXin LI            Christopher Degawa
571cc68614dSXin LI            J. Peter Mugaas
572cc68614dSXin LI            Tyson Smith
573cc68614dSXin LI                 and
574cc68614dSXin LI            GCC Farm Project
575cc68614dSXin LI            Trend Micro Zero Day Initiative
576cc68614dSXin LI
577cc68614dSXin LIRelease 2.4.2 Sun December 19 2021
578cc68614dSXin LI        Other changes:
579cc68614dSXin LI       #509 #510  Link againgst libm for function "isnan"
580cc68614dSXin LI       #513 #514  Include expat_config.h as early as possible
581cc68614dSXin LI            #498  Autotools: Include files with release archives:
582cc68614dSXin LI                    - buildconf.sh
583cc68614dSXin LI                    - fuzz/*.c
58471f0c44aSXin LI       #507 #519  Autotools: Sync CMake templates with CMake 3.20
585cc68614dSXin LI       #495 #524  CMake: MinGW: Fix pkg-config section "Libs" for
586cc68614dSXin LI                    - non-release build types (e.g. -DCMAKE_BUILD_TYPE=Debug)
587cc68614dSXin LI                    - multi-config CMake generators (e.g. Ninja Multi-Config)
588cc68614dSXin LI       #502 #503  docs: Document that function XML_GetBuffer may return NULL
589cc68614dSXin LI                    when asking for a buffer of 0 (zero) bytes size
590cc68614dSXin LI       #522 #523  docs: Fix return value docs for both
591cc68614dSXin LI                    XML_SetBillionLaughsAttackProtection* functions
592cc68614dSXin LI       #525 #526  Version info bumped from 9:1:8 to 9:2:8;
593cc68614dSXin LI                    see https://verbump.de/ for what these numbers do
594cc68614dSXin LI
595cc68614dSXin LI        Special thanks to:
5964543ef51SXin LI            Donghee Na
597cc68614dSXin LI            Joergen Ibsen
598cc68614dSXin LI            Kai Pastor
599cc68614dSXin LI
600cc68614dSXin LIRelease 2.4.1 Sun May 23 2021
601cc68614dSXin LI        Bug fixes:
602cc68614dSXin LI       #488 #490  Autotools: Fix installed header expat_config.h for multilib
603cc68614dSXin LI                    systems; regression introduced in 2.4.0 by pull request #486
604cc68614dSXin LI
605cc68614dSXin LI        Other changes:
606cc68614dSXin LI       #491 #492  Version info bumped from 9:0:8 to 9:1:8;
607cc68614dSXin LI                    see https://verbump.de/ for what these numbers do
608cc68614dSXin LI
609cc68614dSXin LI        Special thanks to:
610cc68614dSXin LI            Gentoo's QA check "multilib_check_headers"
611cc68614dSXin LI
612cc68614dSXin LIRelease 2.4.0 Sun May 23 2021
613cc68614dSXin LI        Security fixes:
614cc68614dSXin LI   #34 #466 #484  CVE-2013-0340/CWE-776 -- Protect against billion laughs attacks
615cc68614dSXin LI                    (denial-of-service; flavors targeting CPU time or RAM or both,
616cc68614dSXin LI                    leveraging general entities or parameter entities or both)
617cc68614dSXin LI                    by tracking and limiting the input amplification factor
618cc68614dSXin LI                    (<amplification> := (<direct> + <indirect>) / <direct>).
619cc68614dSXin LI                    By conservative default, amplification up to a factor of 100.0
620cc68614dSXin LI                    is tolerated and rejection only starts after 8 MiB of output bytes
621cc68614dSXin LI                    (=<direct> + <indirect>) have been processed.
622cc68614dSXin LI                    The fix adds the following to the API:
623cc68614dSXin LI                    - A new error code XML_ERROR_AMPLIFICATION_LIMIT_BREACH to
624cc68614dSXin LI                      signals this specific condition.
625cc68614dSXin LI                    - Two new API functions ..
626cc68614dSXin LI                      - XML_SetBillionLaughsAttackProtectionMaximumAmplification and
627cc68614dSXin LI                      - XML_SetBillionLaughsAttackProtectionActivationThreshold
628cc68614dSXin LI                      .. to further tighten billion laughs protection parameters
629cc68614dSXin LI                      when desired.  Please see file "doc/reference.html" for details.
630cc68614dSXin LI                      If you ever need to increase the defaults for non-attack XML
631cc68614dSXin LI                      payload, please file a bug report with libexpat.
632cc68614dSXin LI                    - Two new XML_FEATURE_* constants ..
633cc68614dSXin LI                      - that can be queried using the XML_GetFeatureList function, and
634cc68614dSXin LI                      - that are shown in "xmlwf -v" output.
635cc68614dSXin LI                    - Two new environment variable switches ..
636cc68614dSXin LI                      - EXPAT_ACCOUNTING_DEBUG=(0|1|2|3) and
637cc68614dSXin LI                      - EXPAT_ENTITY_DEBUG=(0|1)
638cc68614dSXin LI                      .. for runtime debugging of accounting and entity processing.
639cc68614dSXin LI                      Specific behavior of these values may change in the future.
640cc68614dSXin LI                    - Two new command line arguments "-a FACTOR" and "-b BYTES"
641cc68614dSXin LI                      for xmlwf to further tighten billion laughs protection
642cc68614dSXin LI                      parameters when desired.
643cc68614dSXin LI                      If you ever need to increase the defaults for non-attack XML
644cc68614dSXin LI                      payload, please file a bug report with libexpat.
645cc68614dSXin LI
646cc68614dSXin LI        Bug fixes:
647cc68614dSXin LI       #332 #470  For (non-default) compilation with -DEXPAT_MIN_SIZE=ON (CMake)
648cc68614dSXin LI                    or CPPFLAGS=-DXML_MIN_SIZE (GNU Autotools): Fix segfault
649cc68614dSXin LI                    for UTF-16 payloads containing CDATA sections.
650cc68614dSXin LI       #485 #486  Autotools: Fix generated CMake files for non-64bit and
651cc68614dSXin LI                    non-Linux platforms (e.g. macOS and MinGW in particular)
652cc68614dSXin LI                    that were introduced with release 2.3.0
653cc68614dSXin LI
654cc68614dSXin LI        Other changes:
655cc68614dSXin LI       #468 #469  xmlwf: Improve help output and the xmlwf man page
656cc68614dSXin LI            #463  xmlwf: Improve maintainability through some refactoring
657cc68614dSXin LI            #477  xmlwf: Fix man page DocBook validity
65871f0c44aSXin LI            #456  Autotools: Sync CMake templates with CMake 3.18
659cc68614dSXin LI       #458 #459  CMake: Support absolute paths for both CMAKE_INSTALL_LIBDIR
660cc68614dSXin LI                    and CMAKE_INSTALL_INCLUDEDIR
661cc68614dSXin LI       #471 #481  CMake: Add support for standard variable BUILD_SHARED_LIBS
662cc68614dSXin LI            #457  Unexpose symbol _INTERNAL_trim_to_complete_utf8_characters
663cc68614dSXin LI            #467  Resolve macro HAVE_EXPAT_CONFIG_H
664cc68614dSXin LI            #472  Delete unused legacy helper file "conftools/PrintPath"
665cc68614dSXin LI       #473 #483  Improve attribution
666cc68614dSXin LI  #464 #465 #477  doc/reference.html: Fix XHTML validity
667cc68614dSXin LI       #475 #478  doc/reference.html: Replace the 90s look by OK.css
668cc68614dSXin LI            #479  Version info bumped from 8:0:7 to 9:0:8
669cc68614dSXin LI                    due to addition of new symbols and error codes;
670cc68614dSXin LI                    see https://verbump.de/ for what these numbers do
671cc68614dSXin LI
672cc68614dSXin LI        Infrastructure:
673cc68614dSXin LI            #456  CI: Enable periodic runs
674cc68614dSXin LI            #457  CI: Start covering the list of exported symbols
675cc68614dSXin LI            #474  CI: Isolate coverage task
676cc68614dSXin LI       #476 #482  CI: Adapt to breaking changes in image "ubuntu-18.04"
677cc68614dSXin LI            #477  CI: Cover well-formedness and DocBook/XHTML validity
678cc68614dSXin LI                    of doc/reference.html and doc/xmlwf.xml
679cc68614dSXin LI
680cc68614dSXin LI        Special thanks to:
681cc68614dSXin LI            Dimitry Andric
682cc68614dSXin LI            Eero Helenius
683cc68614dSXin LI            Nick Wellnhofer
684cc68614dSXin LI            Rhodri James
685cc68614dSXin LI            Tomas Korbar
686cc68614dSXin LI            Yury Gribov
687cc68614dSXin LI                 and
688cc68614dSXin LI            Clang LeakSan
689cc68614dSXin LI            JetBrains
690cc68614dSXin LI            OSS-Fuzz
691cc68614dSXin LI
692cc68614dSXin LIRelease 2.3.0 Thu March 25 2021
693cc68614dSXin LI        Bug fixes:
694cc68614dSXin LI            #438  When calling XML_ParseBuffer without a prior successful call to
695cc68614dSXin LI                    XML_GetBuffer as a user, no longer trigger undefined behavior
696cc68614dSXin LI                    (by adding an integer to a NULL pointer) but rather return
697cc68614dSXin LI                    XML_STATUS_ERROR and set the error code to (new) code
698cc68614dSXin LI                    XML_ERROR_NO_BUFFER. Found by UBSan (UndefinedBehaviorSanitizer)
699cc68614dSXin LI                    of Clang 11 (but not Clang 9).
700cc68614dSXin LI            #444  xmlwf: Exit status 2 was used for both:
701cc68614dSXin LI                    - malformed input files (documented) and
702cc68614dSXin LI                    - invalid command-line arguments (undocumented).
703cc68614dSXin LI                    The case of invalid command-line arguments now
704cc68614dSXin LI                    has its own exit status 4, resolving the ambiguity.
705cc68614dSXin LI
706cc68614dSXin LI        Other changes:
707cc68614dSXin LI            #439  xmlwf: Add argument -k to allow continuing after
708cc68614dSXin LI                    non-fatal errors
709cc68614dSXin LI            #439  xmlwf: Add section about exit status to the -h help output
710cc68614dSXin LI  #422 #426 #447  Windows: Drop support for Visual Studio <=14.0/2015
711cc68614dSXin LI            #434  Windows: CMake: Detect unsupported Visual Studio at
712cc68614dSXin LI                    configure time (rather than at compile time)
713cc68614dSXin LI       #382 #428  testrunner: Make verbose mode (argument "-v") report
714cc68614dSXin LI                    about passed tests, and make default mode report about
715cc68614dSXin LI                    failures, as well.
716cc68614dSXin LI            #442  CMake: Call "enable_language(CXX)" prior to tinkering
717cc68614dSXin LI                    with CMAKE_CXX_* variables
718cc68614dSXin LI            #448  Document use of libexpat from a CMake-based project
719cc68614dSXin LI            #451  Autotools: Install CMake files as generated by CMake 3.19.6
720cc68614dSXin LI                    so that users with "find_package(expat [..] CONFIG [..])"
721cc68614dSXin LI                    are served on distributions that are *not* using the CMake
722cc68614dSXin LI                    build system inside for libexpat packaging
723cc68614dSXin LI       #436 #437  Autotools: Drop obsolescent macro AC_HEADER_STDC
724cc68614dSXin LI       #450 #452  Autotools: Resolve use of obsolete macro AC_CONFIG_HEADER
725cc68614dSXin LI            #441  Address compiler warnings
726cc68614dSXin LI            #443  Version info bumped from 7:12:6 to 8:0:7
727cc68614dSXin LI                    due to addition of error code XML_ERROR_NO_BUFFER
728cc68614dSXin LI                    (see https://verbump.de/ for what these numbers do)
729cc68614dSXin LI
730cc68614dSXin LI        Infrastructure:
731cc68614dSXin LI       #435 #446  Replace Travis CI by GitHub Actions
732cc68614dSXin LI
733cc68614dSXin LI        Special thanks to:
734cc68614dSXin LI            Alexander Richardson
735cc68614dSXin LI            Oleksandr Popovych
736cc68614dSXin LI            Thomas Beutlich
737cc68614dSXin LI            Tim Bray
738cc68614dSXin LI                 and
739cc68614dSXin LI            Clang LeakSan, Clang 11 UBSan and the Clang team
740cc68614dSXin LI
741cc68614dSXin LIRelease 2.2.10 Sat October 3 2020
742cc68614dSXin LI        Bug fixes:
743cc68614dSXin LI  #390 #395 #398  Fix undefined behavior during parsing caused by
744cc68614dSXin LI                    pointer arithmetic with NULL pointers
745cc68614dSXin LI       #404 #405  Fix reading uninitialized variable during parsing
746cc68614dSXin LI            #406  xmlwf: Add missing check for malloc NULL return
747cc68614dSXin LI
748cc68614dSXin LI        Other changes:
749cc68614dSXin LI            #396  Windows: Drop support for Visual Studio <=8.0/2005
750cc68614dSXin LI            #409  Windows: Add missing file "Changes" to the installer
751cc68614dSXin LI                    to fix compilation with CMake from installed sources
752cc68614dSXin LI            #403  xmlwf: Document exit codes in xmlwf manpage and
753cc68614dSXin LI                    exit with code 3 (rather than code 1) for output errors
754cc68614dSXin LI                    when used with "-d DIRECTORY"
755cc68614dSXin LI       #356 #359  MinGW: Provide declaration of rand_s for mingwrt <5.3.0
756cc68614dSXin LI       #383 #392  Autotools: Use -Werror while configure tests the compiler
757cc68614dSXin LI                    for supported compile flags to avoid false positives
758cc68614dSXin LI  #383 #393 #394  Autotools: Improve handling of user (C|CPP|CXX|LD)FLAGS,
759cc68614dSXin LI                    e.g. ensure that they have the last word over flags added
760cc68614dSXin LI                    while running ./configure
761cc68614dSXin LI            #360  CMake: Create libexpatw.{dll,so} and expatw.pc (with emphasis
762cc68614dSXin LI                    on suffix "w") with -DEXPAT_CHAR_TYPE=(ushort|wchar_t)
763cc68614dSXin LI            #360  CMake: Detect and deny unsupported build combinations
764cc68614dSXin LI                    involving -DEXPAT_CHAR_TYPE=(ushort|wchar_t)
765cc68614dSXin LI            #360  CMake: Install pre-compiled shipped xmlwf.1 manpage in case
766cc68614dSXin LI                    of -DEXPAT_BUILD_DOCS=OFF
767cc68614dSXin LI  #375 #380 #419  CMake: Fix use of Expat by means of add_subdirectory
768cc68614dSXin LI       #407 #408  CMake: Keep expat target name constant at "expat"
769cc68614dSXin LI                    (i.e. refrain from using the target name to control
770cc68614dSXin LI                    build artifact filenames)
771cc68614dSXin LI            #385  CMake: Fix compilation with -DEXPAT_SHARED_LIBS=OFF for
772cc68614dSXin LI                    Windows
773cc68614dSXin LI                  CMake: Expose man page compilation as target "xmlwf-manpage"
774cc68614dSXin LI       #413 #414  CMake: Introduce option EXPAT_BUILD_PKGCONFIG
775cc68614dSXin LI                    to control generation of pkg-config file "expat.pc"
776cc68614dSXin LI            #424  CMake: Add minimalistic support for building binary packages
777cc68614dSXin LI                    with CMake target "package"; based on CPack
778cc68614dSXin LI            #366  CMake: Add option -DEXPAT_OSSFUZZ_BUILD=(ON|OFF) with
779cc68614dSXin LI                    default OFF to build fuzzer code against OSS-Fuzz and
780cc68614dSXin LI                    related environment variable LIB_FUZZING_ENGINE
781cc68614dSXin LI            #354  Fix testsuite for -DEXPAT_DTD=OFF and -DEXPAT_NS=OFF, each
782cc68614dSXin LI    #354 #355 ..
783cc68614dSXin LI       #356 #412  Address compiler warnings
784cc68614dSXin LI       #368 #369  Address pngcheck warnings with doc/*.png images
785cc68614dSXin LI            #425  Version info bumped from 7:11:6 to 7:12:6
786cc68614dSXin LI
787cc68614dSXin LI        Special thanks to:
788cc68614dSXin LI            asavah
789cc68614dSXin LI            Ben Wagner
790cc68614dSXin LI            Bhargava Shastry
791cc68614dSXin LI            Frank Landgraf
792cc68614dSXin LI            Jeffrey Walton
793cc68614dSXin LI            Joe Orton
794cc68614dSXin LI            Kleber Tarcísio
795cc68614dSXin LI            Ma Lin
796cc68614dSXin LI            Maciej Sroczyński
797cc68614dSXin LI            Mohammed Khajapasha
798cc68614dSXin LI            Vadim Zeitlin
799cc68614dSXin LI                 and
800cc68614dSXin LI            Cppcheck 2.0 and the Cppcheck team
801cc68614dSXin LI
802cc68614dSXin LIRelease 2.2.9 Wed September 25 2019
8036b2c1e49SXin LI        Other changes:
8046b2c1e49SXin LI                  examples: Drop executable bits from elements.c
8056b2c1e49SXin LI            #349  Windows: Change the name of the Windows DLLs from expat*.dll
8066b2c1e49SXin LI                    to libexpat*.dll once more (regression from 2.2.8, first
8076b2c1e49SXin LI                    fixed in 1.95.3, issue #61 on SourceForge today,
8086b2c1e49SXin LI                    was issue #432456 back then); needs a fix due
8096b2c1e49SXin LI                    case-insensitive file systems on Windows and the fact that
8106b2c1e49SXin LI                    Perl's XML::Parser::Expat compiles into Expat.dll.
8116b2c1e49SXin LI            #347  Windows: Only define _CRT_RAND_S if not defined
8126b2c1e49SXin LI                  Version info bumped from 7:10:6 to 7:11:6
8136b2c1e49SXin LI
8146b2c1e49SXin LI        Special thanks to:
8156b2c1e49SXin LI            Ben Wagner
8166b2c1e49SXin LI
817cc68614dSXin LIRelease 2.2.8 Fri September 13 2019
8186b2c1e49SXin LI        Security fixes:
8196b2c1e49SXin LI       #317 #318  CVE-2019-15903 -- Fix heap overflow triggered by
8206b2c1e49SXin LI                    XML_GetCurrentLineNumber (or XML_GetCurrentColumnNumber),
8216b2c1e49SXin LI                    and deny internal entities closing the doctype;
8226b2c1e49SXin LI                    fixed in commit c20b758c332d9a13afbbb276d30db1d183a85d43
8236b2c1e49SXin LI
8246b2c1e49SXin LI        Bug fixes:
8256b2c1e49SXin LI            #240  Fix cases where XML_StopParser did not have any effect
8266b2c1e49SXin LI                    when called from inside of an end element handler
8276b2c1e49SXin LI            #341  xmlwf: Fix exit code for operation without "-d DIRECTORY";
8286b2c1e49SXin LI                    previously, only "-d DIRECTORY" would give you a proper
8296b2c1e49SXin LI                    exit code:
8306b2c1e49SXin LI                      # xmlwf -d . <<<'<not well-formed>' 2>/dev/null ; echo $?
8316b2c1e49SXin LI                      2
8326b2c1e49SXin LI                      # xmlwf <<<'<not well-formed>' 2>/dev/null ; echo $?
8336b2c1e49SXin LI                      0
8346b2c1e49SXin LI                    Now both cases return exit code 2.
8356b2c1e49SXin LI
8366b2c1e49SXin LI        Other changes:
8376b2c1e49SXin LI       #299 #302  Windows: Replace LoadLibrary hack to access
8386b2c1e49SXin LI                    unofficial API function SystemFunction036 (RtlGenRandom)
8396b2c1e49SXin LI                    by using official API function rand_s (needs WinXP+)
8406b2c1e49SXin LI            #325  Windows: Drop support for Visual Studio <=7.1/2003
8416b2c1e49SXin LI                    and document supported compilers in README.md
8426b2c1e49SXin LI            #286  Windows: Remove COM code from xmlwf; in case it turns
8436b2c1e49SXin LI                    out needed later, there will be a dedicated repository
8446b2c1e49SXin LI                    below https://github.com/libexpat/ for that code
8456b2c1e49SXin LI            #322  Windows: Remove explicit MSVC solution and project files.
8466b2c1e49SXin LI                    You can generate Visual Studio solution files through
8476b2c1e49SXin LI                    CMake, e.g.: cmake -G"Visual Studio 15 2017" .
8486b2c1e49SXin LI            #338  xmlwf: Make "xmlwf -h" help output more friendly
8496b2c1e49SXin LI            #339  examples: Improve elements.c
8506b2c1e49SXin LI       #244 #264  Autotools: Add argument --enable-xml-attr-info
8516b2c1e49SXin LI       #239 #301  Autotools: Add arguments
8526b2c1e49SXin LI                    --with-getrandom
8536b2c1e49SXin LI                    --without-getrandom
8546b2c1e49SXin LI                    --with-sys-getrandom
8556b2c1e49SXin LI                    --without-sys-getrandom
8566b2c1e49SXin LI       #312 #343  Autotools: Fix linking issues with "./configure LD=clang"
8576b2c1e49SXin LI                  Autotools: Fix "make run-xmltest" for out-of-source builds
8586b2c1e49SXin LI       #329 #336  CMake: Pull all options from Expat <=2.2.7 into namespace
8596b2c1e49SXin LI                    prefix EXPAT_ with the exception of DOCBOOK_TO_MAN:
8606b2c1e49SXin LI                    - BUILD_doc            -> EXPAT_BUILD_DOCS (plural)
8616b2c1e49SXin LI                    - BUILD_examples       -> EXPAT_BUILD_EXAMPLES
8626b2c1e49SXin LI                    - BUILD_shared         -> EXPAT_SHARED_LIBS
8636b2c1e49SXin LI                    - BUILD_tests          -> EXPAT_BUILD_TESTS
8646b2c1e49SXin LI                    - BUILD_tools          -> EXPAT_BUILD_TOOLS
8656b2c1e49SXin LI                    - DOCBOOK_TO_MAN       -> DOCBOOK_TO_MAN (unchanged)
8666b2c1e49SXin LI                    - INSTALL              -> EXPAT_ENABLE_INSTALL
8676b2c1e49SXin LI                    - MSVC_USE_STATIC_CRT  -> EXPAT_MSVC_STATIC_CRT
8686b2c1e49SXin LI                    - USE_libbsd           -> EXPAT_WITH_LIBBSD
8696b2c1e49SXin LI                    - WARNINGS_AS_ERRORS   -> EXPAT_WARNINGS_AS_ERRORS
8706b2c1e49SXin LI                    - XML_CONTEXT_BYTES    -> EXPAT_CONTEXT_BYTES
8716b2c1e49SXin LI                    - XML_DEV_URANDOM      -> EXPAT_DEV_URANDOM
8726b2c1e49SXin LI                    - XML_DTD              -> EXPAT_DTD
8736b2c1e49SXin LI                    - XML_NS               -> EXPAT_NS
8746b2c1e49SXin LI                    - XML_UNICODE          -> EXPAT_CHAR_TYPE=ushort (!)
8756b2c1e49SXin LI                    - XML_UNICODE_WCHAR_T  -> EXPAT_CHAR_TYPE=wchar_t (!)
8766b2c1e49SXin LI       #244 #264  CMake: Add argument -DEXPAT_ATTR_INFO=(ON|OFF),
8776b2c1e49SXin LI                    default OFF
8786b2c1e49SXin LI            #326  CMake: Add argument -DEXPAT_LARGE_SIZE=(ON|OFF),
8796b2c1e49SXin LI                    default OFF
8806b2c1e49SXin LI            #328  CMake: Add argument -DEXPAT_MIN_SIZE=(ON|OFF),
8816b2c1e49SXin LI                    default OFF
8826b2c1e49SXin LI       #239 #277  CMake: Add arguments
8836b2c1e49SXin LI                    -DEXPAT_WITH_GETRANDOM=(ON|OFF|AUTO), default AUTO
8846b2c1e49SXin LI                    -DEXPAT_WITH_SYS_GETRANDOM=(ON|OFF|AUTO), default AUTO
8856b2c1e49SXin LI            #326  CMake: Install expat_config.h to include directory
8866b2c1e49SXin LI            #326  CMake: Generate and install configuration files for
8876b2c1e49SXin LI                    future find_package(expat [..] CONFIG [..])
8886b2c1e49SXin LI                  CMake: Now produces a summary of applied configuration
8896b2c1e49SXin LI                  CMake: Require C++ compiler only when tests are enabled
8906b2c1e49SXin LI            #330  CMake: Fix compilation for 16bit character types,
8916b2c1e49SXin LI                    i.e. ex -DXML_UNICODE=ON (and ex -DXML_UNICODE_WCHAR_T=ON)
8926b2c1e49SXin LI            #265  CMake: Fix linking with MinGW
8936b2c1e49SXin LI            #330  CMake: Add full support for MinGW; to enable, use
8946b2c1e49SXin LI                    -DCMAKE_TOOLCHAIN_FILE=[expat]/cmake/mingw-toolchain.cmake
8956b2c1e49SXin LI            #330  CMake: Port "make run-xmltest" from GNU Autotools to CMake
8966b2c1e49SXin LI            #316  CMake: Windows: Make binary postfix match MSVC
8976b2c1e49SXin LI                    Old: expat[d].lib
8986b2c1e49SXin LI                    New: expat[w][d][MD|MT].lib
8996b2c1e49SXin LI                  CMake: Migrate files from Windows to Unix line endings
9006b2c1e49SXin LI            #308  CMake: Integrate OSS-Fuzz fuzzers, option
9016b2c1e49SXin LI                    -DEXPAT_BUILD_FUZZERS=(ON|OFF), default OFF
9026b2c1e49SXin LI             #14  Drop an OpenVMS support leftover
9036b2c1e49SXin LI    #235 #268 ..
9046b2c1e49SXin LI    #270 #310 ..
9056b2c1e49SXin LI  #313 #331 #333  Address compiler warnings
9066b2c1e49SXin LI    #282 #283 ..
9076b2c1e49SXin LI       #284 #285  Address cppcheck warnings
9086b2c1e49SXin LI       #294 #295  Address Clang Static Analyzer warnings
9096b2c1e49SXin LI        #24 #293  Mass-apply clang-format 9 (and ensure conformance during CI)
9106b2c1e49SXin LI                  Version info bumped from 7:9:6 to 7:10:6
9116b2c1e49SXin LI
9126b2c1e49SXin LI        Special thanks to:
9136b2c1e49SXin LI            David Loffredo
9146b2c1e49SXin LI            Joonun Jang
9156b2c1e49SXin LI            Kishore Kunche
9166b2c1e49SXin LI            Marco Maggi
9176b2c1e49SXin LI            Mitch Phillips
918cc68614dSXin LI            Mohammed Khajapasha
9196b2c1e49SXin LI            Rolf Ade
9206b2c1e49SXin LI            xantares
9216b2c1e49SXin LI            Zhongyuan Zhou
9226b2c1e49SXin LI
9236b2c1e49SXin LIRelease 2.2.7 Wed June 19 2019
9246b2c1e49SXin LI        Security fixes:
9256b2c1e49SXin LI       #186 #262  CVE-2018-20843 -- Fix extraction of namespace prefixes from
9266b2c1e49SXin LI                    XML names; XML names with multiple colons could end up in
9276b2c1e49SXin LI                    the wrong namespace, and take a high amount of RAM and CPU
9286b2c1e49SXin LI                    resources while processing, opening the door to
9296b2c1e49SXin LI                    use for denial-of-service attacks
9306b2c1e49SXin LI
9316b2c1e49SXin LI        Other changes:
9326b2c1e49SXin LI       #195 #197  Autotools/CMake: Utilize -fvisibility=hidden to stop
9336b2c1e49SXin LI                    exporting non-API symbols
9346b2c1e49SXin LI            #227  Autotools: Add --without-examples and --without-tests
9356b2c1e49SXin LI            #228  Autotools: Modernize configure.ac
9366b2c1e49SXin LI       #245 #246  Autotools: Fix check for -fvisibility=hidden for Clang
9376b2c1e49SXin LI       #247 #248  Autotools: Fix compilation for lack of docbook2x-man
9386b2c1e49SXin LI       #236 #258  Autotools: Produce .tar.{gz,lz,xz} release archives
9396b2c1e49SXin LI            #212  CMake: Make libdir of pkgconfig expat.pc support multilib
9406b2c1e49SXin LI       #158 #263  CMake: Build man page in PROJECT_BINARY_DIR not _SOURCE_DIR
9416b2c1e49SXin LI            #219  Remove fallback to bcopy, assume that memmove(3) exists
9426b2c1e49SXin LI            #257  Use portable "/usr/bin/env bash" shebang (e.g. for OpenBSD)
9436b2c1e49SXin LI            #243  Windows: Fix syntax of .def module definition files
9446b2c1e49SXin LI                  Version info bumped from 7:8:6 to 7:9:6
9456b2c1e49SXin LI
9466b2c1e49SXin LI        Special thanks to:
9476b2c1e49SXin LI            Benjamin Peterson
9486b2c1e49SXin LI            Caolán McNamara
9496b2c1e49SXin LI            Hanno Böck
9506b2c1e49SXin LI            KangLin
9516b2c1e49SXin LI            Kishore Kunche
9526b2c1e49SXin LI            Marco Maggi
9536b2c1e49SXin LI            Rhodri James
9546b2c1e49SXin LI            Sebastian Dröge
9556b2c1e49SXin LI            userwithuid
9566b2c1e49SXin LI            Yury Gribov
9576b2c1e49SXin LI
9580a48773fSEric van GyzenRelease 2.2.6 Sun August 12 2018
9590a48773fSEric van Gyzen        Bug fixes:
9600a48773fSEric van Gyzen       #170 #206  Avoid doing arithmetic with NULL pointers in XML_GetBuffer
9610a48773fSEric van Gyzen       #204 #205  Fix 2.2.5 regression with suspend-resume while parsing
9620a48773fSEric van Gyzen                    a document like '<root/>'
9630a48773fSEric van Gyzen
9640a48773fSEric van Gyzen        Other changes:
9650a48773fSEric van Gyzen       #165 #168  Autotools: Fix docbook-related configure syntax error
9660a48773fSEric van Gyzen            #166  Autotools: Avoid grep option `-q` for Solaris
9670a48773fSEric van Gyzen            #167  Autotools: Support
9680a48773fSEric van Gyzen                    ./configure DOCBOOK_TO_MAN="xmlto man --skip-validation"
9690a48773fSEric van Gyzen       #159 #167  Autotools: Support DOCBOOK_TO_MAN command which produces
9700a48773fSEric van Gyzen                    xmlwf.1 rather than XMLWF.1; also covers case insensitive
9710a48773fSEric van Gyzen                    file systems
9720a48773fSEric van Gyzen            #181  Autotools: Drop -rpath option passed to libtool
9730a48773fSEric van Gyzen            #188  Autotools: Detect and deny SGML docbook2man as ours is XML
9740a48773fSEric van Gyzen            #188  Autotools/CMake: Support command db2x_docbook2man as well
9750a48773fSEric van Gyzen            #174  CMake: Introduce option WARNINGS_AS_ERRORS, defaults to OFF
9760a48773fSEric van Gyzen       #184 #185  CMake: Introduce option MSVC_USE_STATIC_CRT, defaults to OFF
9770a48773fSEric van Gyzen       #207 #208  CMake: Introduce option XML_UNICODE and XML_UNICODE_WCHAR_T,
9780a48773fSEric van Gyzen                    both defaulting to OFF
9790a48773fSEric van Gyzen            #175  CMake: Prefer check_symbol_exists over check_function_exists
9800a48773fSEric van Gyzen            #176  CMake: Create the same pkg-config file as with GNU Autotools
9810a48773fSEric van Gyzen       #178 #179  CMake: Use GNUInstallDirs module to set proper defaults for
9820a48773fSEric van Gyzen                    install directories
9830a48773fSEric van Gyzen            #208  CMake: Utilize expat_config.h.cmake for XML_DEV_URANDOM
9840a48773fSEric van Gyzen            #180  Windows: Fix compilation of test suite for Visual Studio 2008
9850a48773fSEric van Gyzen  #131 #173 #202  Address compiler warnings
9860a48773fSEric van Gyzen  #187 #190 #200  Fix miscellaneous typos
9870a48773fSEric van Gyzen                  Version info bumped from 7:7:6 to 7:8:6
9880a48773fSEric van Gyzen
9890a48773fSEric van Gyzen        Special thanks to:
9900a48773fSEric van Gyzen            Anton Maklakov
9910a48773fSEric van Gyzen            Benjamin Peterson
9920a48773fSEric van Gyzen            Brad King
9930a48773fSEric van Gyzen            Franek Korta
9940a48773fSEric van Gyzen            Frank Rast
9950a48773fSEric van Gyzen            Joe Orton
9960a48773fSEric van Gyzen            luzpaz
9970a48773fSEric van Gyzen            Pedro Vicente
9980a48773fSEric van Gyzen            Rainer Jung
9990a48773fSEric van Gyzen            Rhodri James
10000a48773fSEric van Gyzen            Rolf Ade
10010a48773fSEric van Gyzen            Rolf Eike Beer
10020a48773fSEric van Gyzen            Thomas Beutlich
10030a48773fSEric van Gyzen            Tomasz Kłoczko
10040a48773fSEric van Gyzen
10050a48773fSEric van GyzenRelease 2.2.5 Tue October 31 2017
10060a48773fSEric van Gyzen        Bug fixes:
10070a48773fSEric van Gyzen              #8  If the parser runs out of memory, make sure its internal
10080a48773fSEric van Gyzen                    state reflects the memory it actually has, not the memory
10090a48773fSEric van Gyzen                    it wanted to have.
10100a48773fSEric van Gyzen             #11  The default handler wasn't being called when it should for
10110a48773fSEric van Gyzen                    a SYSTEM or PUBLIC doctype if an entity declaration handler
10120a48773fSEric van Gyzen                    was registered.
10130a48773fSEric van Gyzen       #137 #138  Fix a case of mistakenly reported parsing success where
10140a48773fSEric van Gyzen                    XML_StopParser was called from an element handler
10150a48773fSEric van Gyzen            #162  Function XML_ErrorString was returning NULL rather than
10160a48773fSEric van Gyzen                    a message for code XML_ERROR_INVALID_ARGUMENT
10170a48773fSEric van Gyzen                    introduced with release 2.2.1
10180a48773fSEric van Gyzen
10190a48773fSEric van Gyzen        Other changes:
10200a48773fSEric van Gyzen            #106  xmlwf: Add argument -N adding notation declarations
10210a48773fSEric van Gyzen        #75 #106  Test suite: Resolve expected failure cases where xmlwf
10220a48773fSEric van Gyzen                    output was incomplete
10230a48773fSEric van Gyzen            #127  Windows: Fix test suite compilation
10240a48773fSEric van Gyzen       #126 #127  Windows: Fix compilation for Visual Studio 2012
10250a48773fSEric van Gyzen                  Windows: Upgrade shipped project files to Visual Studio 2017
10260a48773fSEric van Gyzen        #33 #132  tests: Mass-fix compilation for XML_UNICODE_WCHAR_T
10270a48773fSEric van Gyzen            #129  examples: Fix compilation for XML_UNICODE_WCHAR_T
10280a48773fSEric van Gyzen            #130  benchmark: Fix compilation for XML_UNICODE_WCHAR_T
10290a48773fSEric van Gyzen            #144  xmlwf: Fix compilation for XML_UNICODE_WCHAR_T; still needs
10300a48773fSEric van Gyzen                    Windows or MinGW for 2-byte wchar_t
10310a48773fSEric van Gyzen              #9  Address two Clang Static Analyzer false positives
10320a48773fSEric van Gyzen             #59  Resolve troublesome macros hiding parser struct membership
10330a48773fSEric van Gyzen                    and dereferencing that pointer
10340a48773fSEric van Gyzen              #6  Resolve superfluous internal malloc/realloc switch
10350a48773fSEric van Gyzen       #153 #155  Improve docbook2x-man detection
10360a48773fSEric van Gyzen            #160  Undefine NDEBUG in the test suite (rather than rejecting it)
10370a48773fSEric van Gyzen            #161  Address compiler warnings
10380a48773fSEric van Gyzen                  Version info bumped from 7:6:6 to 7:7:6
10390a48773fSEric van Gyzen
10400a48773fSEric van Gyzen        Special thanks to:
10410a48773fSEric van Gyzen            Benbuck Nason
10420a48773fSEric van Gyzen            Hans Wennborg
10430a48773fSEric van Gyzen            José Gutiérrez de la Concha
10440a48773fSEric van Gyzen            Pedro Monreal Gonzalez
10450a48773fSEric van Gyzen            Rhodri James
10460a48773fSEric van Gyzen            Rolf Ade
10470a48773fSEric van Gyzen            Stephen Groat
10480a48773fSEric van Gyzen                 and
10490a48773fSEric van Gyzen            Core Infrastructure Initiative
10500a48773fSEric van Gyzen
10510a48773fSEric van GyzenRelease 2.2.4 Sat August 19 2017
10520a48773fSEric van Gyzen        Bug fixes:
10530a48773fSEric van Gyzen            #115  Fix copying of partial characters for UTF-8 input
10540a48773fSEric van Gyzen
10550a48773fSEric van Gyzen        Other changes:
10560a48773fSEric van Gyzen            #109  Fix "make check" for non-x86 architectures that default
10570a48773fSEric van Gyzen                    to unsigned type char (-128..127 rather than 0..255)
10580a48773fSEric van Gyzen            #109  coverage.sh: Cover -funsigned-char
10590a48773fSEric van Gyzen                  Autotools: Introduce --without-xmlwf argument
10600a48773fSEric van Gyzen             #65  Autotools: Replace handwritten Makefile with GNU Automake
10610a48773fSEric van Gyzen             #43  CMake: Auto-detect high quality entropy extractors, add new
10620a48773fSEric van Gyzen                    option USE_libbsd=ON to use arc4random_buf of libbsd
10630a48773fSEric van Gyzen             #74  CMake: Add -fno-strict-aliasing only where supported
10640a48773fSEric van Gyzen            #114  CMake: Always honor manually set BUILD_* options
10650a48773fSEric van Gyzen            #114  CMake: Compile man page if docbook2x-man is available, only
10660a48773fSEric van Gyzen            #117  Include file tests/xmltest.log.expected in source tarball
10670a48773fSEric van Gyzen                    (required for "make run-xmltest")
10680a48773fSEric van Gyzen            #117  Include (existing) Visual Studio 2013 files in source tarball
10690a48773fSEric van Gyzen                  Improve test suite error output
10700a48773fSEric van Gyzen            #111  Fix some typos in documentation
10710a48773fSEric van Gyzen                  Version info bumped from 7:5:6 to 7:6:6
10720a48773fSEric van Gyzen
10730a48773fSEric van Gyzen        Special thanks to:
10740a48773fSEric van Gyzen            Jakub Wilk
10750a48773fSEric van Gyzen            Joe Orton
10760a48773fSEric van Gyzen            Lin Tian
10770a48773fSEric van Gyzen            Rolf Eike Beer
10780a48773fSEric van Gyzen
10790a48773fSEric van GyzenRelease 2.2.3 Wed August 2 2017
10800a48773fSEric van Gyzen        Security fixes:
10810a48773fSEric van Gyzen             #82  CVE-2017-11742 -- Windows: Fix DLL hijacking vulnerability
10820a48773fSEric van Gyzen                    using Steve Holme's LoadLibrary wrapper for/of cURL
10830a48773fSEric van Gyzen
10840a48773fSEric van Gyzen        Bug fixes:
10850a48773fSEric van Gyzen             #85  Fix a dangling pointer issue related to realloc
10860a48773fSEric van Gyzen
10870a48773fSEric van Gyzen        Other changes:
10880a48773fSEric van Gyzen                  Increase code coverage
10890a48773fSEric van Gyzen             #91  Linux: Allow getrandom to fail if nonblocking pool has not
10900a48773fSEric van Gyzen                    yet been initialized and read /dev/urandom then, instead.
10910a48773fSEric van Gyzen                    This is in line with what recent Python does.
10920a48773fSEric van Gyzen             #81  Pre-10.7/Lion macOS: Support entropy from arc4random
10930a48773fSEric van Gyzen             #86  Check that a UTF-16 encoding in an XML declaration has the
10940a48773fSEric van Gyzen                    right endianness
10950a48773fSEric van Gyzen        #4 #5 #7  Recover correctly when some reallocations fail
10960a48773fSEric van Gyzen                  Repair "./configure && make" for systems without any
10970a48773fSEric van Gyzen                    provider of high quality entropy
10980a48773fSEric van Gyzen                    and try reading /dev/urandom on those
10990a48773fSEric van Gyzen                  Ensure that user-defined character encodings have converter
11000a48773fSEric van Gyzen                    functions when they are needed
11010a48773fSEric van Gyzen                  Fix mis-leading description of argument -c in xmlwf.1
11020a48773fSEric van Gyzen                  Rely on macro HAVE_ARC4RANDOM_BUF (rather than __CloudABI__)
11030a48773fSEric van Gyzen                    for CloudABI
11040a48773fSEric van Gyzen            #100  Fix use of SIPHASH_MAIN in siphash.h
11050a48773fSEric van Gyzen             #23  Test suite: Fix memory leaks
11060a48773fSEric van Gyzen                  Version info bumped from 7:4:6 to 7:5:6
11070a48773fSEric van Gyzen
11080a48773fSEric van Gyzen        Special thanks to:
11090a48773fSEric van Gyzen            Chanho Park
11100a48773fSEric van Gyzen            Joe Orton
11110a48773fSEric van Gyzen            Pascal Cuoq
11120a48773fSEric van Gyzen            Rhodri James
11130a48773fSEric van Gyzen            Simon McVittie
11140a48773fSEric van Gyzen            Vadim Zeitlin
11150a48773fSEric van Gyzen            Viktor Szakats
11160a48773fSEric van Gyzen                 and
11170a48773fSEric van Gyzen            Core Infrastructure Initiative
11180a48773fSEric van Gyzen
11190a48773fSEric van GyzenRelease 2.2.2 Wed July 12 2017
11200a48773fSEric van Gyzen        Security fixes:
11210a48773fSEric van Gyzen             #43  Protect against compilation without any source of high
11220a48773fSEric van Gyzen                    quality entropy enabled, e.g. with CMake build system;
11230a48773fSEric van Gyzen                    commit ff0207e6076e9828e536b8d9cd45c9c92069b895
11240a48773fSEric van Gyzen             #60  Windows with _UNICODE:
11250a48773fSEric van Gyzen                    Unintended use of LoadLibraryW with a non-wide string
11260a48773fSEric van Gyzen                    resulted in failure to load advapi32.dll and degradation
11270a48773fSEric van Gyzen                    in quality of used entropy when compiled with _UNICODE for
11280a48773fSEric van Gyzen                    Windows; you can launch existing binaries with
11290a48773fSEric van Gyzen                    EXPAT_ENTROPY_DEBUG=1 in the environment to inspect the
11300a48773fSEric van Gyzen                    quality of entropy used during runtime; commits
11310a48773fSEric van Gyzen                    * 95b95032f907ef1cd17ee7a9a1768010a825d61d
11320a48773fSEric van Gyzen                    * 73a5a2e9c081f49f2d775cf7ced864158b68dc80
11330a48773fSEric van Gyzen   [MOX-006]      Fix non-NULL parser parameter validation in XML_Parse;
11340a48773fSEric van Gyzen                    resulted in NULL dereference, previously;
11350a48773fSEric van Gyzen                    commit ac256dafdffc9622ab0dc2c62fcecb0dfcfa71fe
11360a48773fSEric van Gyzen
11370a48773fSEric van Gyzen        Bug fixes:
11380a48773fSEric van Gyzen             #69  Fix improper use of unsigned long long integer literals
11390a48773fSEric van Gyzen
11400a48773fSEric van Gyzen        Other changes:
11410a48773fSEric van Gyzen             #73  Start requiring a C99 compiler
11420a48773fSEric van Gyzen             #49  Fix "==" Bashism in configure script
11430a48773fSEric van Gyzen             #50  Fix too eager getrandom detection for Debian GNU/kFreeBSD
11440a48773fSEric van Gyzen             #52    and macOS
11450a48773fSEric van Gyzen             #51  Address lack of stdint.h in Visual Studio 2003 to 2008
11460a48773fSEric van Gyzen             #58  Address compile warnings
11470a48773fSEric van Gyzen             #68  Fix "./buildconf.sh && ./configure" for some versions
11480a48773fSEric van Gyzen                    of Dash for /bin/sh
11490a48773fSEric van Gyzen             #72  CMake: Ease use of Expat in context of a parent project
11500a48773fSEric van Gyzen                    with multiple CMakeLists.txt files
11510a48773fSEric van Gyzen             #72  CMake: Resolve mistaken executable permissions
11520a48773fSEric van Gyzen             #76  Address compile warning with -DNDEBUG (not recommended!)
11530a48773fSEric van Gyzen             #77  Address compile warning about macro redefinition
11540a48773fSEric van Gyzen
11550a48773fSEric van Gyzen        Special thanks to:
11560a48773fSEric van Gyzen            Alexander Bluhm
11570a48773fSEric van Gyzen            Ben Boeckel
11580a48773fSEric van Gyzen            Cătălin Răceanu
11590a48773fSEric van Gyzen            Kerin Millar
11600a48773fSEric van Gyzen            László Böszörményi
11610a48773fSEric van Gyzen            S. P. Zeidler
11620a48773fSEric van Gyzen            Segev Finer
11630a48773fSEric van Gyzen            Václav Slavík
11640a48773fSEric van Gyzen            Victor Stinner
11650a48773fSEric van Gyzen            Viktor Szakats
11660a48773fSEric van Gyzen                 and
11670a48773fSEric van Gyzen            Radically Open Security
11680a48773fSEric van Gyzen
11690a48773fSEric van GyzenRelease 2.2.1 Sat June 17 2017
11700a48773fSEric van Gyzen        Security fixes:
11710a48773fSEric van Gyzen                  CVE-2017-9233 -- External entity infinite loop DoS
11720a48773fSEric van Gyzen                    Details: https://libexpat.github.io/doc/cve-2017-9233/
11730a48773fSEric van Gyzen                    Commit c4bf96bb51dd2a1b0e185374362ee136fe2c9d7f
11740a48773fSEric van Gyzen   [MOX-002]      CVE-2016-9063 -- Detect integer overflow; commit
11750a48773fSEric van Gyzen                    d4f735b88d9932bd5039df2335eefdd0723dbe20
11760a48773fSEric van Gyzen                    (Fixed version of existing downstream patches!)
11770a48773fSEric van Gyzen   (SF.net) #539  Fix regression from fix to CVE-2016-0718 cutting off
11780a48773fSEric van Gyzen                    longer tag names; commits
11790a48773fSEric van Gyzen                    * 896b6c1fd3b842f377d1b62135dccf0a579cf65d
11800a48773fSEric van Gyzen                    * af507cef2c93cb8d40062a0abe43a4f4e9158fb2
11810a48773fSEric van Gyzen             #16    * 0dbbf43fdb20f593ddf4fa1ff67288000dd4a7fd
11820a48773fSEric van Gyzen             #25  More integer overflow detection (function poolGrow); commits
11830a48773fSEric van Gyzen                    * 810b74e4703dcfdd8f404e3cb177d44684775143
11840a48773fSEric van Gyzen                    * 44178553f3539ce69d34abee77a05e879a7982ac
11850a48773fSEric van Gyzen   [MOX-002]      Detect overflow from len=INT_MAX call to XML_Parse; commits
11860a48773fSEric van Gyzen                    * 4be2cb5afcc018d996f34bbbce6374b7befad47f
11870a48773fSEric van Gyzen                    * 7e5b71b748491b6e459e5c9a1d090820f94544d8
11880a48773fSEric van Gyzen   [MOX-005] #30  Use high quality entropy for hash initialization:
11890a48773fSEric van Gyzen                    * arc4random_buf on BSD, systems with libbsd
11900a48773fSEric van Gyzen                      (when configured with --with-libbsd), CloudABI
11910a48773fSEric van Gyzen                    * RtlGenRandom on Windows XP / Server 2003 and later
11920a48773fSEric van Gyzen                    * getrandom on Linux 3.17+
11930a48773fSEric van Gyzen                    In a way, that's still part of CVE-2016-5300.
11940a48773fSEric van Gyzen                    https://github.com/libexpat/libexpat/pull/30/commits
11950a48773fSEric van Gyzen   [MOX-005]      For the low quality entropy extraction fallback code,
11960a48773fSEric van Gyzen                    the parser instance address can no longer leak, commit
11970a48773fSEric van Gyzen                    04ad658bd3079dd15cb60fc67087900f0ff4b083
11980a48773fSEric van Gyzen   [MOX-003]      Prevent use of uninitialised variable; commit
11990a48773fSEric van Gyzen   [MOX-004]        a4dc944f37b664a3ca7199c624a98ee37babdb4b
12000a48773fSEric van Gyzen                  Add missing parameter validation to public API functions
12010a48773fSEric van Gyzen                    and dedicated error code XML_ERROR_INVALID_ARGUMENT:
12020a48773fSEric van Gyzen   [MOX-006]        * NULL checks; commits
12030a48773fSEric van Gyzen                      * d37f74b2b7149a3a95a680c4c4cd2a451a51d60a (merge/many)
12040a48773fSEric van Gyzen                      * 9ed727064b675b7180c98cb3d4f75efba6966681
12050a48773fSEric van Gyzen                      * 6a747c837c50114dfa413994e07c0ba477be4534
12060a48773fSEric van Gyzen                    * Negative length (XML_Parse); commit
12070a48773fSEric van Gyzen   [MOX-002]          70db8d2538a10f4c022655d6895e4c3e78692e7f
12080a48773fSEric van Gyzen   [MOX-001] #35  Change hash algorithm to William Ahern's version of SipHash
12090a48773fSEric van Gyzen                    to go further with fixing CVE-2012-0876.
12100a48773fSEric van Gyzen                    https://github.com/libexpat/libexpat/pull/39/commits
12110a48773fSEric van Gyzen
12120a48773fSEric van Gyzen        Bug fixes:
12130a48773fSEric van Gyzen             #32  Fix sharing of hash salt across parsers;
12140a48773fSEric van Gyzen                    relevant where XML_ExternalEntityParserCreate is called
12150a48773fSEric van Gyzen                    prior to XML_Parse, in particular (e.g. FBReader)
12160a48773fSEric van Gyzen             #28  xmlwf: Auto-disable use of memory-mapping (and parsing
12170a48773fSEric van Gyzen                    as a single chunk) for files larger than ~1 GB (2^30 bytes)
12180a48773fSEric van Gyzen                    rather than failing with error "out of memory"
12190a48773fSEric van Gyzen              #3  Fix double free after malloc failure in DTD code; commit
12200a48773fSEric van Gyzen                    7ae9c3d3af433cd4defe95234eae7dc8ed15637f
12210a48773fSEric van Gyzen             #17  Fix memory leak on parser error for unbound XML attribute
12220a48773fSEric van Gyzen                    prefix with new namespaces defined in the same tag;
12230a48773fSEric van Gyzen                    found by Google's OSS-Fuzz; commits
12240a48773fSEric van Gyzen                    * 16f87daae5a16132e479e4f71862128c7a915c73
12250a48773fSEric van Gyzen                    * b47dbc9745932c160893d433220e462bd605f8cd
12260a48773fSEric van Gyzen                  xmlwf on Windows: Add missing calls to CloseHandle
12270a48773fSEric van Gyzen
12280a48773fSEric van Gyzen        New features:
12290a48773fSEric van Gyzen             #30  Introduced environment switch EXPAT_ENTROPY_DEBUG=1
12300a48773fSEric van Gyzen                    for runtime debugging of entropy extraction
12310a48773fSEric van Gyzen
12320a48773fSEric van Gyzen        Other changes:
12330a48773fSEric van Gyzen                  Increase code coverage
12340a48773fSEric van Gyzen             #33  Reject use of XML_UNICODE_WCHAR_T with sizeof(wchar_t) != 2;
12350a48773fSEric van Gyzen                    XML_UNICODE_WCHAR_T was never meant to be used outside
12360a48773fSEric van Gyzen                    of Windows; 4-byte wchar_t is common on Linux
12370a48773fSEric van Gyzen   (SF.net) #538  Start using -fno-strict-aliasing
12380a48773fSEric van Gyzen   (SF.net) #540  Support compilation against cloudlibc of CloudABI
12390a48773fSEric van Gyzen                  Allow MinGW cross-compilation
12400a48773fSEric van Gyzen   (SF.net) #534  CMake: Introduce option "BUILD_doc" (enabled by default)
12410a48773fSEric van Gyzen                    to bypass compilation of the xmlwf.1 man page
12420a48773fSEric van Gyzen   (SF.net)  pr2  CMake: Introduce option "INSTALL" (enabled by default)
12430a48773fSEric van Gyzen                    to bypass installation of expat files
12440a48773fSEric van Gyzen                  CMake: Fix ninja support
12450a48773fSEric van Gyzen                  Autotools: Add parameters --enable-xml-context [COUNT]
12460a48773fSEric van Gyzen                    and --disable-xml-context; default of context of 1024
12470a48773fSEric van Gyzen                    bytes enabled unchanged
12480a48773fSEric van Gyzen             #14  Drop AmigaOS 4.x code and includes
12490a48773fSEric van Gyzen             #14  Drop ancient build systems:
12500a48773fSEric van Gyzen                    * Borland C++ Builder
12510a48773fSEric van Gyzen                    * OpenVMS
12520a48773fSEric van Gyzen                    * Open Watcom
12530a48773fSEric van Gyzen                    * Visual Studio 6.0
12540a48773fSEric van Gyzen                    * Pre-X Mac OS (MPW Makefile)
12550a48773fSEric van Gyzen                    If you happen to rely on some of these, please get in
12560a48773fSEric van Gyzen                    touch for joining with maintenance.
12570a48773fSEric van Gyzen             #10  Move from WIN32 to _WIN32
12580a48773fSEric van Gyzen             #13  Fix "make run-xmltest" order instability
12590a48773fSEric van Gyzen                  Address compile warnings
12600a48773fSEric van Gyzen                  Bump version info from 7:2:6 to 7:3:6
12610a48773fSEric van Gyzen                  Add AUTHORS file
12620a48773fSEric van Gyzen
12630a48773fSEric van Gyzen        Infrastructure:
12640a48773fSEric van Gyzen              #1  Migrate from SourceForge to GitHub (except downloads):
12650a48773fSEric van Gyzen                    https://github.com/libexpat/
12660a48773fSEric van Gyzen              #1  Re-create http://libexpat.org/ project website
12670a48773fSEric van Gyzen                  Start utilizing Travis CI
12680a48773fSEric van Gyzen
12690a48773fSEric van Gyzen        Special thanks to:
12700a48773fSEric van Gyzen            Andy Wang
12710a48773fSEric van Gyzen            Don Lewis
12720a48773fSEric van Gyzen            Ed Schouten
12730a48773fSEric van Gyzen            Karl Waclawek
12740a48773fSEric van Gyzen            Pascal Cuoq
12750a48773fSEric van Gyzen            Rhodri James
12760a48773fSEric van Gyzen            Sergei Nikulov
12770a48773fSEric van Gyzen            Tobias Taschner
12780a48773fSEric van Gyzen            Viktor Szakats
12790a48773fSEric van Gyzen                 and
12800a48773fSEric van Gyzen            Core Infrastructure Initiative
12810a48773fSEric van Gyzen            Mozilla Foundation (MOSS Track 3: Secure Open Source)
12820a48773fSEric van Gyzen            Radically Open Security
12830a48773fSEric van Gyzen
1284be8aff81SXin LIRelease 2.2.0 Tue June 21 2016
1285be8aff81SXin LI        Security fixes:
1286be8aff81SXin LI            #537  CVE-2016-0718 -- Fix crash on malformed input
1287be8aff81SXin LI                  CVE-2016-4472 -- Improve insufficient fix to CVE-2015-1283 /
1288be8aff81SXin LI                                   CVE-2015-2716 introduced with Expat 2.1.1
1289be8aff81SXin LI            #499  CVE-2016-5300 -- Use more entropy for hash initialization
1290be8aff81SXin LI                                   than the original fix to CVE-2012-0876
1291be8aff81SXin LI            #519  CVE-2012-6702 -- Resolve troublesome internal call to srand
1292be8aff81SXin LI                                   that was introduced with Expat 2.1.0
1293be8aff81SXin LI                                   when addressing CVE-2012-0876 (issue #496)
1294be8aff81SXin LI
1295be8aff81SXin LI        Bug fixes:
1296be8aff81SXin LI                  Fix uninitialized reads of size 1
1297be8aff81SXin LI                    (e.g. in little2_updatePosition)
1298be8aff81SXin LI                  Fix detection of UTF-8 character boundaries
1299be8aff81SXin LI
1300be8aff81SXin LI        Other changes:
1301be8aff81SXin LI            #532  Fix compilation for Visual Studio 2010 (keyword "C99")
1302be8aff81SXin LI                  Autotools: Resolve use of "$<" to better support bmake
1303be8aff81SXin LI                  Autotools: Add QA script "qa.sh" (and make target "qa")
1304be8aff81SXin LI                  Autotools: Respect CXXFLAGS if given
1305be8aff81SXin LI                  Autotools: Fix "make run-xmltest"
1306be8aff81SXin LI                  Autotools: Have "make run-xmltest" check for expected output
1307be8aff81SXin LI             p90  CMake: Fix static build (BUILD_shared=OFF) on Windows
1308be8aff81SXin LI            #536  CMake: Add soversion, support -DNO_SONAME=yes to bypass
1309be8aff81SXin LI            #323  CMake: Add suffix "d" to differentiate debug from release
1310be8aff81SXin LI                  CMake: Define WIN32 with CMake on Windows
1311be8aff81SXin LI                  Annotate memory allocators for GCC
1312be8aff81SXin LI                  Address all currently known compile warnings
1313be8aff81SXin LI                  Make sure that API symbols remain visible despite
1314be8aff81SXin LI                    -fvisibility=hidden
1315be8aff81SXin LI                  Remove executable flag from source files
1316be8aff81SXin LI                  Resolve COMPILED_FROM_DSP in favor of WIN32
1317be8aff81SXin LI
1318be8aff81SXin LI        Special thanks to:
1319be8aff81SXin LI            Björn Lindahl
1320be8aff81SXin LI            Christian Heimes
1321be8aff81SXin LI            Cristian Rodríguez
1322be8aff81SXin LI            Daniel Krügler
1323be8aff81SXin LI            Gustavo Grieco
1324be8aff81SXin LI            Karl Waclawek
1325be8aff81SXin LI            László Böszörményi
1326be8aff81SXin LI            Marco Grassi
1327be8aff81SXin LI            Pascal Cuoq
1328be8aff81SXin LI            Sergei Nikulov
1329be8aff81SXin LI            Thomas Beutlich
1330be8aff81SXin LI            Warren Young
1331be8aff81SXin LI            Yann Droneaud
1332be8aff81SXin LI
1333be8aff81SXin LIRelease 2.1.1 Sat March 12 2016
1334be8aff81SXin LI        Security fixes:
1335be8aff81SXin LI            #582: CVE-2015-1283 - Multiple integer overflows in XML_GetBuffer
1336be8aff81SXin LI
1337be8aff81SXin LI        Bug fixes:
1338be8aff81SXin LI            #502: Fix potential null pointer dereference
1339be8aff81SXin LI            #520: Symbol XML_SetHashSalt was not exported
1340be8aff81SXin LI            Output of "xmlwf -h" was incomplete
1341be8aff81SXin LI
1342be8aff81SXin LI        Other changes:
1343be8aff81SXin LI            #503: Document behavior of calling XML_SetHashSalt with salt 0
1344be8aff81SXin LI            Minor improvements to man page xmlwf(1)
1345be8aff81SXin LI            Improvements to the experimental CMake build system
1346be8aff81SXin LI            libtool now invoked with --verbose
1347be8aff81SXin LI
1348e3466a89SXin LIRelease 2.1.0 Sat March 24 2012
13490a48773fSEric van Gyzen        - Security fixes:
13500a48773fSEric van Gyzen          #2958794: CVE-2012-1148 - Memory leak in poolGrow.
13510a48773fSEric van Gyzen          #2895533: CVE-2012-1147 - Resource leak in readfilemap.c.
13520a48773fSEric van Gyzen          #3496608: CVE-2012-0876 - Hash DOS attack.
13530a48773fSEric van Gyzen          #2894085: CVE-2009-3560 - Buffer over-read and crash in big2_toUtf8().
13540a48773fSEric van Gyzen          #1990430: CVE-2009-3720 - Parser crash with special UTF-8 sequences.
1355e3466a89SXin LI        - Bug Fixes:
1356e3466a89SXin LI          #1742315: Harmful XML_ParserCreateNS suggestion.
1357e3466a89SXin LI          #1785430: Expat build fails on linux-amd64 with gcc version>=4.1 -O3.
1358e3466a89SXin LI          #1983953, 2517952, 2517962, 2649838:
1359e3466a89SXin LI                Build modifications using autoreconf instead of buildconf.sh.
1360e3466a89SXin LI          #2815947, #2884086: OBJEXT and EXEEXT support while building.
1361e3466a89SXin LI          #2517938: xmlwf should return non-zero exit status if not well-formed.
1362e3466a89SXin LI          #2517946: Wrong statement about XMLDecl in xmlwf.1 and xmlwf.sgml.
1363e3466a89SXin LI          #2855609: Dangling positionPtr after error.
1364e3466a89SXin LI          #2990652: CMake support.
1365e3466a89SXin LI          #3010819: UNEXPECTED_STATE with a trailing "%" in entity value.
13660a48773fSEric van Gyzen          #3206497: Uninitialized memory returned from XML_Parse.
1367e3466a89SXin LI          #3287849: make check fails on mingw-w64.
1368e3466a89SXin LI        - Patches:
1369e3466a89SXin LI          #1749198: pkg-config support.
1370e3466a89SXin LI          #3010222: Fix for bug #3010819.
1371e3466a89SXin LI          #3312568: CMake support.
1372e3466a89SXin LI          #3446384: Report byte offsets for attr names and values.
1373e3466a89SXin LI        - New Features / API changes:
1374be8aff81SXin LI          Added new API member XML_SetHashSalt() that allows setting an initial
1375e3466a89SXin LI                value (salt) for hash calculations. This is part of the fix for
1376e3466a89SXin LI                bug #3496608 to randomize hash parameters.
1377e3466a89SXin LI          When compiled with XML_ATTR_INFO defined, adds new API member
1378e3466a89SXin LI                XML_GetAttributeInfo() that allows retrieving the byte
1379e3466a89SXin LI                offsets for attribute names and values (patch #3446384).
1380e3466a89SXin LI          Added CMake build system.
1381e3466a89SXin LI                See bug #2990652 and patch #3312568.
1382e3466a89SXin LI          Added run-benchmark target to Makefile.in - relies on testdata module
1383e3466a89SXin LI                present in the same relative location as in the repository.
1384e3466a89SXin LI
1385220ed979SColeman KaneRelease 2.0.1 Tue June 5 2007
1386e3466a89SXin LI        - Fixed bugs #1515266, #1515600: The character data handler's calling
1387220ed979SColeman Kane          of XML_StopParser() was not handled properly; if the parser was
1388220ed979SColeman Kane          stopped and the handler set to NULL, the parser would segfault.
1389220ed979SColeman Kane        - Fixed bug #1690883: Expat failed on EBCDIC systems as it assumed
1390220ed979SColeman Kane          some character constants to be ASCII encoded.
1391220ed979SColeman Kane        - Minor cleanups of the test harness.
1392220ed979SColeman Kane        - Fixed xmlwf bug #1513566: "out of memory" error on file size zero.
1393220ed979SColeman Kane        - Fixed outline.c bug #1543233: missing a final XML_ParserFree() call.
1394220ed979SColeman Kane        - Fixes and improvements for Windows platform:
1395e3466a89SXin LI          bugs #1409451, #1476160, #1548182, #1602769, #1717322.
1396220ed979SColeman Kane        - Build fixes for various platforms:
1397220ed979SColeman Kane          HP-UX, Tru64, Solaris 9: patch #1437840, bug #1196180.
1398220ed979SColeman Kane          All Unix: #1554618 (refreshed config.sub/config.guess).
1399220ed979SColeman Kane                    #1490371, #1613457: support both, DESTDIR and INSTALL_ROOT,
1400220ed979SColeman Kane                    without relying on GNU-Make specific features.
1401220ed979SColeman Kane          #1647805: Patched configure.in to work better with Intel compiler.
1402220ed979SColeman Kane        - Fixes to Makefile.in to have make check work correctly:
1403220ed979SColeman Kane          bugs #1408143, #1535603, #1536684.
1404220ed979SColeman Kane        - Added Open Watcom support: patch #1523242.
1405220ed979SColeman Kane
1406220ed979SColeman KaneRelease 2.0.0 Wed Jan 11 2006
1407220ed979SColeman Kane        - We no longer use the "check" library for C unit testing; we
1408220ed979SColeman Kane          always use the (partial) internal implementation of the API.
1409220ed979SColeman Kane        - Report XML_NS setting via XML_GetFeatureList().
1410220ed979SColeman Kane        - Fixed headers for use from C++.
1411220ed979SColeman Kane        - XML_GetCurrentLineNumber() and  XML_GetCurrentColumnNumber()
1412220ed979SColeman Kane          now return unsigned integers.
1413220ed979SColeman Kane        - Added XML_LARGE_SIZE switch to enable 64-bit integers for
1414220ed979SColeman Kane          byte indexes and line/column numbers.
1415220ed979SColeman Kane        - Updated to use libtool 1.5.22 (the most recent).
1416220ed979SColeman Kane        - Added support for AmigaOS.
1417e3466a89SXin LI        - Some mostly minor bug fixes. SF issues include: #1006708,
1418e3466a89SXin LI          #1021776, #1023646, #1114960, #1156398, #1221160, #1271642.
1419220ed979SColeman Kane
1420220ed979SColeman KaneRelease 1.95.8 Fri Jul 23 2004
1421220ed979SColeman Kane        - Major new feature: suspend/resume.  Handlers can now request
1422220ed979SColeman Kane          that a parse be suspended for later resumption or aborted
1423220ed979SColeman Kane          altogether.  See "Temporarily Stopping Parsing" in the
1424220ed979SColeman Kane          documentation for more details.
1425220ed979SColeman Kane        - Some mostly minor bug fixes, but compilation should no
1426220ed979SColeman Kane          longer generate warnings on most platforms.  SF issues
1427e3466a89SXin LI          include: #827319, #840173, #846309, #888329, #896188, #923913,
1428e3466a89SXin LI          #928113, #961698, #985192.
1429220ed979SColeman Kane
1430220ed979SColeman KaneRelease 1.95.7 Mon Oct 20 2003
1431220ed979SColeman Kane        - Fixed enum XML_Status issue (reported on SourceForge many
1432220ed979SColeman Kane          times), so compilers that are properly picky will be happy.
1433220ed979SColeman Kane        - Introduced an XMLCALL macro to control the calling
1434220ed979SColeman Kane          convention used by the Expat API; this macro should be used
1435220ed979SColeman Kane          to annotate prototypes and definitions of callback
1436220ed979SColeman Kane          implementations in code compiled with a calling convention
1437220ed979SColeman Kane          other than the default convention for the host platform.
1438220ed979SColeman Kane        - Improved ability to build without the configure-generated
1439220ed979SColeman Kane          expat_config.h header.  This is useful for applications
1440220ed979SColeman Kane          which embed Expat rather than linking in the library.
1441e3466a89SXin LI        - Fixed a variety of bugs: see SF issues #458907, #609603,
1442e3466a89SXin LI          #676844, #679754, #692878, #692964, #695401, #699323, #699487,
1443e3466a89SXin LI          #820946.
1444220ed979SColeman Kane        - Improved hash table lookups.
1445220ed979SColeman Kane        - Added more regression tests and improved documentation.
1446220ed979SColeman Kane
1447220ed979SColeman KaneRelease 1.95.6 Tue Jan 28 2003
1448220ed979SColeman Kane        - Added XML_FreeContentModel().
1449220ed979SColeman Kane        - Added XML_MemMalloc(), XML_MemRealloc(), XML_MemFree().
1450e3466a89SXin LI        - Fixed a variety of bugs: see SF issues #615606, #616863,
1451e3466a89SXin LI          #618199, #653180, #673791.
1452220ed979SColeman Kane        - Enhanced the regression test suite.
1453e3466a89SXin LI        - Man page improvements: includes SF issue #632146.
1454220ed979SColeman Kane
14555bb6a25fSPoul-Henning KampRelease 1.95.5 Fri Sep 6 2002
14565bb6a25fSPoul-Henning Kamp        - Added XML_UseForeignDTD() for improved SAX2 support.
14575bb6a25fSPoul-Henning Kamp        - Added XML_GetFeatureList().
14585bb6a25fSPoul-Henning Kamp        - Defined XML_Bool type and the values XML_TRUE and XML_FALSE.
14595bb6a25fSPoul-Henning Kamp        - Use an incomplete struct instead of a void* for the parser
14605bb6a25fSPoul-Henning Kamp          (may not retain).
14615bb6a25fSPoul-Henning Kamp        - Fixed UTF-8 decoding bug that caused legal UTF-8 to be rejected.
14625bb6a25fSPoul-Henning Kamp        - Finally fixed bug where default handler would report DTD
14635bb6a25fSPoul-Henning Kamp          events that were already handled by another handler.
1464220ed979SColeman Kane          Initial patch contributed by Darryl Miles.
14655bb6a25fSPoul-Henning Kamp        - Removed unnecessary DllMain() function that caused static
14665bb6a25fSPoul-Henning Kamp          linking into a DLL to be difficult.
14675bb6a25fSPoul-Henning Kamp        - Added VC++ projects for building static libraries.
14685bb6a25fSPoul-Henning Kamp        - Reduced line-length for all source code and headers to be
14695bb6a25fSPoul-Henning Kamp          no longer than 80 characters, to help with AS/400 support.
14705bb6a25fSPoul-Henning Kamp        - Reduced memory copying during parsing (SF patch #600964).
1471e3466a89SXin LI        - Fixed a variety of bugs: see SF issues #580793, #434664,
1472e3466a89SXin LI          #483514, #580503, #581069, #584041, #584183, #584832, #585537,
1473e3466a89SXin LI          #596555, #596678, #598352, #598944, #599715, #600479, #600971.
14745bb6a25fSPoul-Henning Kamp
14755bb6a25fSPoul-Henning KampRelease 1.95.4 Fri Jul 12 2002
14765bb6a25fSPoul-Henning Kamp        - Added support for VMS, contributed by Craig Berry.  See
14775bb6a25fSPoul-Henning Kamp          vms/README.vms for more information.
14785bb6a25fSPoul-Henning Kamp        - Added Mac OS (classic) support, with a makefile for MPW,
14795bb6a25fSPoul-Henning Kamp          contributed by Thomas Wegner and Daryle Walker.
14805bb6a25fSPoul-Henning Kamp        - Added Borland C++ Builder 5 / BCC 5.5 support, contributed
14815bb6a25fSPoul-Henning Kamp          by Patrick McConnell (SF patch #538032).
1482e3466a89SXin LI        - Fixed a variety of bugs: see SF issues #441449, #563184,
1483e3466a89SXin LI          #564342, #566334, #566901, #569461, #570263, #575168, #579196.
14845bb6a25fSPoul-Henning Kamp        - Made skippedEntityHandler conform to SAX2 (see source comment)
14855bb6a25fSPoul-Henning Kamp        - Re-implemented WFC: Entity Declared from XML 1.0 spec and
14865bb6a25fSPoul-Henning Kamp          added a new error "entity declared in parameter entity":
1487e3466a89SXin LI          see SF bug report #569461 and SF patch #578161
14885bb6a25fSPoul-Henning Kamp        - Re-implemented section 5.1 from XML 1.0 spec:
1489e3466a89SXin LI          see SF bug report #570263 and SF patch #578161
14905bb6a25fSPoul-Henning Kamp
14915bb6a25fSPoul-Henning KampRelease 1.95.3 Mon Jun 3 2002
14925bb6a25fSPoul-Henning Kamp        - Added a project to the MSVC workspace to create a wchar_t
14935bb6a25fSPoul-Henning Kamp          version of the library; the DLLs are named libexpatw.dll.
14945bb6a25fSPoul-Henning Kamp        - Changed the name of the Windows DLLs from expat.dll to
14955bb6a25fSPoul-Henning Kamp          libexpat.dll; this fixes SF bug #432456.
14965bb6a25fSPoul-Henning Kamp        - Added the XML_ParserReset() API function.
14975bb6a25fSPoul-Henning Kamp        - Fixed XML_SetReturnNSTriplet() to work for element names.
14985bb6a25fSPoul-Henning Kamp        - Made the XML_UNICODE builds usable (thanks, Karl!).
14995bb6a25fSPoul-Henning Kamp        - Allow xmlwf to read from standard input.
15005bb6a25fSPoul-Henning Kamp        - Install a man page for xmlwf on Unix systems.
1501e3466a89SXin LI        - Fixed many bugs; see SF bug reports #231864, #461380, #464837,
1502e3466a89SXin LI          #466885, #469226, #477667, #484419, #487840, #494749, #496505,
1503e3466a89SXin LI          #547350.  Other bugs which we can't test as easily may also
15045bb6a25fSPoul-Henning Kamp          have been fixed, especially in the area of build support.
15055bb6a25fSPoul-Henning Kamp
15065bb6a25fSPoul-Henning KampRelease 1.95.2 Fri Jul 27 2001
15075bb6a25fSPoul-Henning Kamp        - More changes to make MSVC happy with the build; add a single
15085bb6a25fSPoul-Henning Kamp          workspace to support both the library and xmlwf application.
15095bb6a25fSPoul-Henning Kamp        - Added a Windows installer for Windows users; includes
15105bb6a25fSPoul-Henning Kamp          xmlwf.exe.
15115bb6a25fSPoul-Henning Kamp        - Added compile-time constants that can be used to determine the
15125bb6a25fSPoul-Henning Kamp          Expat version
15135bb6a25fSPoul-Henning Kamp        - Removed a lot of GNU-specific dependencies to aide portability
15145bb6a25fSPoul-Henning Kamp          among the various Unix flavors.
15155bb6a25fSPoul-Henning Kamp        - Fix the UTF-8 BOM bug.
15165bb6a25fSPoul-Henning Kamp        - Cleaned up warning messages for several compilers.
15175bb6a25fSPoul-Henning Kamp        - Added the -Wall, -Wstrict-prototypes options for GCC.
15185bb6a25fSPoul-Henning Kamp
15195bb6a25fSPoul-Henning KampRelease 1.95.1 Sun Oct 22 15:11:36 EDT 2000
15205bb6a25fSPoul-Henning Kamp        - Changes to get expat to build under Microsoft compiler
15215bb6a25fSPoul-Henning Kamp        - Removed all aborts and instead return an UNEXPECTED_STATE error.
15225bb6a25fSPoul-Henning Kamp        - Fixed a bug where a stray '%' in an entity value would cause an
15235bb6a25fSPoul-Henning Kamp          abort.
15245bb6a25fSPoul-Henning Kamp        - Defined XML_SetEndNamespaceDeclHandler. Thanks to Darryl Miles for
15255bb6a25fSPoul-Henning Kamp          finding this oversight.
15265bb6a25fSPoul-Henning Kamp        - Changed default patterns in lib/Makefile.in to fit non-GNU makes
15275bb6a25fSPoul-Henning Kamp          Thanks to robin@unrated.net for reporting and providing an
15285bb6a25fSPoul-Henning Kamp          account to test on.
15295bb6a25fSPoul-Henning Kamp        - The reference had the wrong label for XML_SetStartNamespaceDecl.
15305bb6a25fSPoul-Henning Kamp          Reported by an anonymous user.
15315bb6a25fSPoul-Henning Kamp
15325bb6a25fSPoul-Henning KampRelease 1.95.0 Fri Sep 29 2000
15335bb6a25fSPoul-Henning Kamp        - XML_ParserCreate_MM
15345bb6a25fSPoul-Henning Kamp                Allows you to set a memory management suite to replace the
15355bb6a25fSPoul-Henning Kamp                standard malloc,realloc, and free.
15365bb6a25fSPoul-Henning Kamp        - XML_SetReturnNSTriplet
15375bb6a25fSPoul-Henning Kamp                If you turn this feature on when namespace processing is in
15385bb6a25fSPoul-Henning Kamp                effect, then qualified, prefixed element and attribute names
15395bb6a25fSPoul-Henning Kamp                are returned as "uri|name|prefix" where '|' is whatever
15405bb6a25fSPoul-Henning Kamp                separator character is used in namespace processing.
15415bb6a25fSPoul-Henning Kamp        - Merged in features from perl-expat
15425bb6a25fSPoul-Henning Kamp                o XML_SetElementDeclHandler
15435bb6a25fSPoul-Henning Kamp                o XML_SetAttlistDeclHandler
15445bb6a25fSPoul-Henning Kamp                o XML_SetXmlDeclHandler
15455bb6a25fSPoul-Henning Kamp                o XML_SetEntityDeclHandler
15465bb6a25fSPoul-Henning Kamp                o StartDoctypeDeclHandler takes 3 additional parameters:
15475bb6a25fSPoul-Henning Kamp                        sysid, pubid, has_internal_subset
15485bb6a25fSPoul-Henning Kamp                o Many paired handler setters (like XML_SetElementHandler)
15495bb6a25fSPoul-Henning Kamp                  now have corresponding individual handler setters
15505bb6a25fSPoul-Henning Kamp                o XML_GetInputContext for getting the input context of
15515bb6a25fSPoul-Henning Kamp                  the current parse position.
15525bb6a25fSPoul-Henning Kamp        - Added reference material
15535bb6a25fSPoul-Henning Kamp        - Packaged into a distribution that builds a sharable library
1554