xref: /freebsd/contrib/expat/Changes (revision 8d485a8490fe1cd60e7b6a00d3c8a8cc116a56fb)
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!! - teaming up on researching and fixing future security reports and        !!
15ffd294a1SEnji Cooper!!   ClusterFuzz findings with few-days-max response times in communication  !!
16ffd294a1SEnji Cooper!!   in order to (1) have a sound fix ready before the end of a 90 days      !!
17ffd294a1SEnji Cooper!!   grace period and (2) in a sustainable manner,                           !!
18627b778dSXin LI!! - helping CPython Expat bindings with supporting Expat's amplification    !!
19fe927888SPhilip Paeps!!   attack protection API (https://github.com/python/cpython/issues/90949): !!
20627b778dSXin LI!!   - XML_SetAllocTrackerActivationThreshold                                !!
21627b778dSXin LI!!   - XML_SetAllocTrackerMaximumAmplification                               !!
22fe927888SPhilip Paeps!!   - XML_SetBillionLaughsAttackProtectionActivationThreshold               !!
23fe927888SPhilip Paeps!!   - XML_SetBillionLaughsAttackProtectionMaximumAmplification              !!
24fe927888SPhilip Paeps!! - helping Perl's XML::Parser Expat bindings with supporting Expat's       !!
25fe927888SPhilip Paeps!!   security API (https://github.com/cpan-authors/XML-Parser/issues/102):   !!
26627b778dSXin LI!!   - XML_SetAllocTrackerActivationThreshold                                !!
27627b778dSXin LI!!   - XML_SetAllocTrackerMaximumAmplification                               !!
28fe927888SPhilip Paeps!!   - XML_SetBillionLaughsAttackProtectionActivationThreshold               !!
29fe927888SPhilip Paeps!!   - XML_SetBillionLaughsAttackProtectionMaximumAmplification              !!
30fe927888SPhilip Paeps!!   - XML_SetReparseDeferralEnabled                                         !!
31ffd294a1SEnji Cooper!! - implementing and auto-testing XML 1.0r5 support                         !!
32ffd294a1SEnji Cooper!!   (needs discussion before pull requests),                                !!
33ffd294a1SEnji Cooper!! - smart ideas on fixing the Autotools CMake files generation issue        !!
34ffd294a1SEnji Cooper!!   without breaking CI (needs discussion before pull requests),            !!
35ffd294a1SEnji Cooper!! - pushing migration from `int` to `size_t` further                        !!
36ffd294a1SEnji Cooper!!   including edge-cases test coverage (needs discussion before anything).  !!
37ffd294a1SEnji Cooper!!                                                                           !!
38ffd294a1SEnji Cooper!! For details, please reach out via e-mail to sebastian@pipping.org so we   !!
39ffd294a1SEnji Cooper!! can schedule a voice call on the topic, in English or German.             !!
40ffd294a1SEnji Cooper!!                                                                           !!
41ffd294a1SEnji Cooper!! THANK YOU!                        Sebastian Pipping -- Berlin, 2024-03-09 !!
42ffd294a1SEnji Cooper!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
43ffd294a1SEnji Cooper
44*8d485a84SXin LIRelease 2.7.3 Wed September 24 2025
45*8d485a84SXin LI        Security fixes:
46*8d485a84SXin LI     #1046 #1048  Fix alignment of internal allocations for some non-amd64
47*8d485a84SXin LI                    architectures (e.g. sparc32); fixes up on the fix to
48*8d485a84SXin LI                    CVE-2025-59375 from #1034 (of Expat 2.7.2 and related
49*8d485a84SXin LI                    backports)
50*8d485a84SXin LI           #1059  Fix a class of false positives where input should have been
51*8d485a84SXin LI                    rejected with error XML_ERROR_ASYNC_ENTITY; regression from
52*8d485a84SXin LI                    CVE-2024-8176 fix pull request #973 (of Expat 2.7.0 and
53*8d485a84SXin LI                    related backports). Please check the added unit tests for
54*8d485a84SXin LI                    example documents.
55*8d485a84SXin LI
56*8d485a84SXin LI        Other changes:
57*8d485a84SXin LI           #1043  Prove and regression-proof absence of integer overflow
58*8d485a84SXin LI                    from function expat_realloc
59*8d485a84SXin LI           #1062  Remove "harmless" cast that truncated a size_t to unsigned
60*8d485a84SXin LI           #1049  Autotools: Remove "ln -s" discovery
61*8d485a84SXin LI           #1054  docs: Be consistent with use of floating point around
62*8d485a84SXin LI                    XML_SetAllocTrackerMaximumAmplification
63*8d485a84SXin LI           #1056  docs: Make it explicit that XML_GetCurrentColumnNumber
64*8d485a84SXin LI                    starts at 0
65*8d485a84SXin LI           #1057  docs: Better integrate the effect of the activation
66*8d485a84SXin LI                    thresholds
67*8d485a84SXin LI           #1058  docs: Fix an in-comment typo in expat.h
68*8d485a84SXin LI           #1045  docs: Fix a typo in README.md
69*8d485a84SXin LI           #1041  docs: Improve change log of release 2.7.2
70*8d485a84SXin LI           #1053  xmlwf: Resolve use of functions XML_GetErrorLineNumber
71*8d485a84SXin LI                    and XML_GetErrorColumnNumber
72*8d485a84SXin LI           #1032  Windows: Normalize .bat files to CRLF line endings
73*8d485a84SXin LI     #1060 #1061  Version info bumped from 12:0:11 (libexpat*.so.1.11.0)
74*8d485a84SXin LI                    to 12:1:11 (libexpat*.so.1.11.1); see https://verbump.de/
75*8d485a84SXin LI                    for what these numbers do
76*8d485a84SXin LI
77*8d485a84SXin LI        Infrastructure:
78*8d485a84SXin LI     #1047 #1050  CI: Cleanup UndefinedBehaviorSanitizer fatality
79*8d485a84SXin LI           #1044  CI|Linux: Stop aborting at first job failure
80*8d485a84SXin LI           #1052  CI|FreeBSD: Upgrade to FreeBSD 15.0
81*8d485a84SXin LI           #1039  CI|FreeBSD: Do not install CMake meta-package
82*8d485a84SXin LI
83*8d485a84SXin LI        Special thanks to:
84*8d485a84SXin LI            Bénédikt Tran
85*8d485a84SXin LI            Berkay Eren Ürün
86*8d485a84SXin LI            Daniel Engberg
87*8d485a84SXin LI            Hanno Böck
88*8d485a84SXin LI            Matthew Fernandez
89*8d485a84SXin LI            Rolf Eike Beer
90*8d485a84SXin LI            Sam James
91*8d485a84SXin LI            Tim Bray
92*8d485a84SXin LI                 and
93*8d485a84SXin LI            Clang/GCC UndefinedBehaviorSanitizer
94*8d485a84SXin LI            OSS-Fuzz / ClusterFuzz
95*8d485a84SXin LI            Z3 Theorem Prover
96*8d485a84SXin LI
97627b778dSXin LIRelease 2.7.2 Tue September 16 2025
98627b778dSXin LI        Security fixes:
99627b778dSXin LI     #1018 #1034  CVE-2025-59375 -- Disallow use of disproportional amounts of
100627b778dSXin LI                    dynamic memory from within an Expat parser (e.g. previously
101627b778dSXin LI                    a ~250 KiB sized document was able to cause allocation of
102627b778dSXin LI                    ~800 MiB from the heap, i.e. an "amplification" of factor
103627b778dSXin LI                    ~3,300); once a threshold (that defaults to 64 MiB) is
104627b778dSXin LI                    reached, a maximum amplification factor (that defaults to
105627b778dSXin LI                    100.0) is enforced, and violating documents are rejected
106627b778dSXin LI                    with an out-of-memory error.
107627b778dSXin LI                    There are two new API functions to fine-tune this new
108627b778dSXin LI                    behavior:
109627b778dSXin LI                      - XML_SetAllocTrackerActivationThreshold
110627b778dSXin LI                      - XML_SetAllocTrackerMaximumAmplification .
111627b778dSXin LI                    If you ever need to increase these defaults for non-attack
112627b778dSXin LI                    XML payload, please file a bug report with libexpat.
113627b778dSXin LI                      There is also a new environment variable
114627b778dSXin LI                    EXPAT_MALLOC_DEBUG=(0|1|2) to control the verbosity
115627b778dSXin LI                    of allocations debugging at runtime, disabled by default.
116627b778dSXin LI                      Known impact is (reliable and easy) denial of service:
117627b778dSXin LI                    CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H/E:H/RL:O/RC:C
118627b778dSXin LI                    (Base Score: 7.5, Temporal Score: 7.2)
119627b778dSXin LI                    Please note that a layer of compression around XML can
120627b778dSXin LI                    significantly reduce the minimum attack payload size.
121627b778dSXin LI                      Distributors intending to backport (or cherry-pick) the
122627b778dSXin LI                    fix need to copy 99% of the related pull request, not just
123627b778dSXin LI                    the "lib: Implement tracking of dynamic memory allocations"
124627b778dSXin LI                    commit, to not end up with a state that literally does both
125627b778dSXin LI                    too much and too little at the same time. Appending ".diff"
126627b778dSXin LI                    to the pull request URL could be of help.
127627b778dSXin LI
128627b778dSXin LI        Other changes:
129*8d485a84SXin LI     #1008 #1017  Autotools|macOS: Sync CMake templates with CMake 3.31
130627b778dSXin LI           #1007  CMake: Drop support for CMake <3.15
131627b778dSXin LI           #1004  CMake: Fix off_t detection for -Werror
132627b778dSXin LI           #1007  CMake|Windows: Fix -DEXPAT_MSVC_STATIC_CRT=ON
133627b778dSXin LI           #1013  Windows: Drop support for Visual Studio <=16.0/2019
134627b778dSXin LI           #1026  xmlwf: Mention supported environment variables in
135627b778dSXin LI                    --help output
136627b778dSXin LI           #1024  xmlwf: Fix (internal) help generator
137627b778dSXin LI           #1034  docs: Promote the contract to call function
138627b778dSXin LI                    XML_FreeContentModel when registering a custom
139627b778dSXin LI                    element declaration handler (via a call to function
140627b778dSXin LI                    XML_SetElementDeclHandler)
141627b778dSXin LI           #1027  docs: Add missing <p>..</p> wrap
142627b778dSXin LI            #994  docs: Drop AppVeyor badge
143627b778dSXin LI           #1000  tests: Fix portable_strndup
144627b778dSXin LI           #1036  Drop casts around malloc/free/realloc that C99 does not need
145*8d485a84SXin LI           #1010  Replace empty for loops with while loops
146627b778dSXin LI           #1011  Add const with internal XmlInitUnknownEncodingNS
147627b778dSXin LI       #14 #1037  Drop an OpenVMS support leftover
148627b778dSXin LI      #999 #1001  Address more clang-tidy warnings
149627b778dSXin LI     #1030 #1038  Version info bumped from 11:2:10 (libexpat*.so.1.10.2)
150627b778dSXin LI                    to 12:0:11 (libexpat*.so.1.11.0); see https://verbump.de/
151627b778dSXin LI                    for what these numbers do
152627b778dSXin LI
153627b778dSXin LI        Infrastructure:
154627b778dSXin LI           #1003  CI: Cover compilation on FreeBSD
155627b778dSXin LI     #1009 #1035  CI: Upgrade Clang from 19 to 21
156627b778dSXin LI           #1031  CI: Make calling Cppcheck without --suppress=objectIndex
157627b778dSXin LI                    and --suppress=unknownMacro possible
158627b778dSXin LI           #1013  CI|Windows: Get off of deprecated image "windows-2019"
159627b778dSXin LI  #1008 #1017 ..
160627b778dSXin LI     #1023 #1025  CI: Adapt to breaking changes in GitHub Actions
161627b778dSXin LI
162627b778dSXin LI        Special thanks to:
163627b778dSXin LI            Alexander Bluhm
164627b778dSXin LI            Neil Pang
165627b778dSXin LI            Theo Buehler
166627b778dSXin LI                 and
167*8d485a84SXin LI            GNU Time
168627b778dSXin LI            OSS-Fuzz / ClusterFuzz
169627b778dSXin LI            Perl XML::Parser
170627b778dSXin LI
171fe927888SPhilip PaepsRelease 2.7.1 Thu March 27 2025
172fe927888SPhilip Paeps        Bug fixes:
173fe927888SPhilip Paeps       #980 #989  Restore event pointer behavior from Expat 2.6.4
174fe927888SPhilip Paeps                    (that the fix to CVE-2024-8176 changed in 2.7.0);
175fe927888SPhilip Paeps                    affected API functions are:
176fe927888SPhilip Paeps                    - XML_GetCurrentByteCount
177fe927888SPhilip Paeps                    - XML_GetCurrentByteIndex
178fe927888SPhilip Paeps                    - XML_GetCurrentColumnNumber
179fe927888SPhilip Paeps                    - XML_GetCurrentLineNumber
180fe927888SPhilip Paeps                    - XML_GetInputContext
181fe927888SPhilip Paeps
182fe927888SPhilip Paeps        Other changes:
183fe927888SPhilip Paeps       #976 #977  Autotools: Integrate files "fuzz/xml_lpm_fuzzer.{cpp,proto}"
184fe927888SPhilip Paeps                    with Automake that were missing from 2.7.0 release tarballs
185fe927888SPhilip Paeps       #983 #984  Fix printf format specifiers for 32bit Emscripten
186fe927888SPhilip Paeps            #992  docs: Promote OpenSSF Best Practices self-certification
187fe927888SPhilip Paeps            #978  tests/benchmark: Resolve mistaken double close
188627b778dSXin LI            #986  Address Frama-C warnings
189fe927888SPhilip Paeps       #990 #993  Version info bumped from 11:1:10 (libexpat*.so.1.10.1)
190fe927888SPhilip Paeps                    to 11:2:10 (libexpat*.so.1.10.2); see https://verbump.de/
191fe927888SPhilip Paeps                    for what these numbers do
192fe927888SPhilip Paeps
193fe927888SPhilip Paeps        Infrastructure:
194fe927888SPhilip Paeps            #982  CI: Start running Perl XML::Parser integration tests
195fe927888SPhilip Paeps            #987  CI: Enforce Clang Static Analyzer clean code
196fe927888SPhilip Paeps            #991  CI: Re-enable warning clang-analyzer-valist.Uninitialized
197fe927888SPhilip Paeps                    for clang-tidy
198fe927888SPhilip Paeps            #981  CI: Cover compilation with musl
199fe927888SPhilip Paeps       #983 #984  CI: Cover compilation with 32bit Emscripten
200fe927888SPhilip Paeps       #976 #977  CI: Protect against fuzzer files missing from future
201fe927888SPhilip Paeps                    release archives
202fe927888SPhilip Paeps
203fe927888SPhilip Paeps        Special thanks to:
204fe927888SPhilip Paeps            Berkay Eren Ürün
205fe927888SPhilip Paeps            Matthew Fernandez
206fe927888SPhilip Paeps                 and
207fe927888SPhilip Paeps            Perl XML::Parser
208fe927888SPhilip Paeps
209fe927888SPhilip PaepsRelease 2.7.0 Thu March 13 2025
210fe927888SPhilip Paeps        Security fixes:
211fe927888SPhilip Paeps       #893 #973  CVE-2024-8176 -- Fix crash from chaining a large number
212fe927888SPhilip Paeps                    of entities caused by stack overflow by resolving use of
213fe927888SPhilip Paeps                    recursion, for all three uses of entities:
214fe927888SPhilip Paeps                    - general entities in character data ("<e>&g1;</e>")
215fe927888SPhilip Paeps                    - general entities in attribute values ("<e k1='&g1;'/>")
216fe927888SPhilip Paeps                    - parameter entities ("%p1;")
217fe927888SPhilip Paeps                    Known impact is (reliable and easy) denial of service:
218fe927888SPhilip Paeps                    CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H/E:H/RL:O/RC:C
219fe927888SPhilip Paeps                    (Base Score: 7.5, Temporal Score: 7.2)
220fe927888SPhilip Paeps                    Please note that a layer of compression around XML can
221fe927888SPhilip Paeps                    significantly reduce the minimum attack payload size.
222fe927888SPhilip Paeps
223fe927888SPhilip Paeps        Other changes:
224fe927888SPhilip Paeps       #935 #937  Autotools: Make generated CMake files look for
225fe927888SPhilip Paeps                    libexpat.@SO_MAJOR@.dylib on macOS
226fe927888SPhilip Paeps            #925  Autotools: Sync CMake templates with CMake 3.29
227fe927888SPhilip Paeps  #945 #962 #966  CMake: Drop support for CMake <3.13
228fe927888SPhilip Paeps            #942  CMake: Small fuzzing related improvements
229fe927888SPhilip Paeps            #921  docs: Add missing documentation of error code
230fe927888SPhilip Paeps                    XML_ERROR_NOT_STARTED that was introduced with 2.6.4
231fe927888SPhilip Paeps            #941  docs: Document need for C++11 compiler for use from C++
232fe927888SPhilip Paeps            #959  tests/benchmark: Fix a (harmless) TOCTTOU
233fe927888SPhilip Paeps            #944  Windows: Fix installer target location of file xmlwf.xml
234fe927888SPhilip Paeps                    for CMake
235fe927888SPhilip Paeps            #953  Windows: Address warning -Wunknown-warning-option
236fe927888SPhilip Paeps                    about -Wno-pedantic-ms-format from LLVM MinGW
237fe927888SPhilip Paeps            #971  Address Cppcheck warnings
238fe927888SPhilip Paeps       #969 #970  Mass-migrate links from http:// to https://
239fe927888SPhilip Paeps    #947 #958 ..
240fe927888SPhilip Paeps       #974 #975  Document changes since the previous release
241fe927888SPhilip Paeps       #974 #975  Version info bumped from 11:0:10 (libexpat*.so.1.10.0)
242fe927888SPhilip Paeps                    to 11:1:10 (libexpat*.so.1.10.1); see https://verbump.de/
243fe927888SPhilip Paeps                    for what these numbers do
244fe927888SPhilip Paeps
245fe927888SPhilip Paeps        Infrastructure:
246fe927888SPhilip Paeps            #926  tests: Increase robustness
247fe927888SPhilip Paeps    #927 #932 ..
248fe927888SPhilip Paeps       #930 #933  tests: Increase test coverage
249fe927888SPhilip Paeps    #617 #950 ..
250fe927888SPhilip Paeps    #951 #952 ..
251fe927888SPhilip Paeps    #954 #955 ..  Fuzzing: Add new fuzzer "xml_lpm_fuzzer" based on
252fe927888SPhilip Paeps            #961    Google's libprotobuf-mutator ("LPM")
253fe927888SPhilip Paeps            #957  Fuzzing|CI: Start producing fuzzing code coverage reports
254fe927888SPhilip Paeps            #936  CI: Pass -q -q for LCOV >=2.1 in coverage.sh
255fe927888SPhilip Paeps            #942  CI: Small fuzzing related improvements
256fe927888SPhilip Paeps    #139 #203 ..
257fe927888SPhilip Paeps       #791 #946  CI: Make GitHub Actions build using MSVC on Windows and
258fe927888SPhilip Paeps                      produce 32bit and 64bit Windows binaries
259fe927888SPhilip Paeps            #956  CI: Get off of about-to-be-removed Ubuntu 20.04
260fe927888SPhilip Paeps       #960 #964  CI: Start uploading to Coverity Scan for static analysis
261fe927888SPhilip Paeps            #972  CI: Stop loading DTD from the internet to address flaky CI
262fe927888SPhilip Paeps            #971  CI: Adapt to breaking changes in Cppcheck
263fe927888SPhilip Paeps
264fe927888SPhilip Paeps        Special thanks to:
265fe927888SPhilip Paeps            Alexander Gieringer
266fe927888SPhilip Paeps            Berkay Eren Ürün
267fe927888SPhilip Paeps            Hanno Böck
268fe927888SPhilip Paeps            Jann Horn
269fe927888SPhilip Paeps            Mark Brand
270fe927888SPhilip Paeps            Sebastian Andrzej Siewior
271fe927888SPhilip Paeps            Snild Dolkow
272fe927888SPhilip Paeps            Thomas Pröll
273fe927888SPhilip Paeps            Tomas Korbar
274fe927888SPhilip Paeps            valord577
275fe927888SPhilip Paeps                 and
276fe927888SPhilip Paeps            Google Project Zero
277fe927888SPhilip Paeps            Linutronix
278fe927888SPhilip Paeps            Red Hat
279fe927888SPhilip Paeps            Siemens
280fe927888SPhilip Paeps
281908f215eSXin LIRelease 2.6.4 Wed November 6 2024
282908f215eSXin LI        Security fixes:
283908f215eSXin LI            #915  CVE-2024-50602 -- Fix crash within function XML_ResumeParser
284908f215eSXin LI                    from a NULL pointer dereference by disallowing function
285908f215eSXin LI                    XML_StopParser to (stop or) suspend an unstarted parser.
286908f215eSXin LI                    A new error code XML_ERROR_NOT_STARTED was introduced to
287908f215eSXin LI                    properly communicate this situation.  // CWE-476 CWE-754
288908f215eSXin LI
289908f215eSXin LI        Other changes:
290908f215eSXin LI            #903  CMake: Add alias target "expat::expat"
291908f215eSXin LI            #905  docs: Document use via CMake >=3.18 with FetchContent
292908f215eSXin LI                    and SOURCE_SUBDIR and its consequences
293908f215eSXin LI            #902  tests: Reduce use of global parser instance
294908f215eSXin LI            #904  tests: Resolve duplicate handler
295908f215eSXin LI       #317 #918  tests: Improve tests on doctype closing (ex CVE-2019-15903)
296908f215eSXin LI            #914  Fix signedness of format strings
297fe927888SPhilip Paeps            #915  For use from C++, expat.h started requiring C++11 due to
298fe927888SPhilip Paeps                    use of C99 features
299908f215eSXin LI       #919 #920  Version info bumped from 10:3:9 (libexpat*.so.1.9.3)
300908f215eSXin LI                    to 11:0:10 (libexpat*.so.1.10.0); see https://verbump.de/
301908f215eSXin LI                    for what these numbers do
302908f215eSXin LI
303908f215eSXin LI        Infrastructure:
304908f215eSXin LI            #907  CI: Upgrade Clang from 18 to 19
305908f215eSXin LI            #913  CI: Drop macos-12 and add macos-15
306908f215eSXin LI            #910  CI: Adapt to breaking changes in GitHub Actions
307908f215eSXin LI            #898  Add missing entries to .gitignore
308908f215eSXin LI
309908f215eSXin LI        Special thanks to:
310908f215eSXin LI            Hanno Böck
311908f215eSXin LI            José Eduardo Gutiérrez Conejo
312908f215eSXin LI            José Ricardo Cardona Quesada
313908f215eSXin LI
314ffd294a1SEnji CooperRelease 2.6.3 Wed September 4 2024
315ffd294a1SEnji Cooper        Security fixes:
316ffd294a1SEnji Cooper       #887 #890  CVE-2024-45490 -- Calling function XML_ParseBuffer with
317ffd294a1SEnji Cooper                    len < 0 without noticing and then calling XML_GetBuffer
318ffd294a1SEnji Cooper                    will have XML_ParseBuffer fail to recognize the problem
319ffd294a1SEnji Cooper                    and XML_GetBuffer corrupt memory.
320ffd294a1SEnji Cooper                    With the fix, XML_ParseBuffer now complains with error
321ffd294a1SEnji Cooper                    XML_ERROR_INVALID_ARGUMENT just like sibling XML_Parse
322ffd294a1SEnji Cooper                    has been doing since Expat 2.2.1, and now documented.
323ffd294a1SEnji Cooper                    Impact is denial of service to potentially artitrary code
324ffd294a1SEnji Cooper                    execution.
325ffd294a1SEnji Cooper       #888 #891  CVE-2024-45491 -- Internal function dtdCopy can have an
326ffd294a1SEnji Cooper                    integer overflow for nDefaultAtts on 32-bit platforms
327ffd294a1SEnji Cooper                    (where UINT_MAX equals SIZE_MAX).
328ffd294a1SEnji Cooper                    Impact is denial of service to potentially artitrary code
329ffd294a1SEnji Cooper                    execution.
330ffd294a1SEnji Cooper       #889 #892  CVE-2024-45492 -- Internal function nextScaffoldPart can
331ffd294a1SEnji Cooper                    have an integer overflow for m_groupSize on 32-bit
332ffd294a1SEnji Cooper                    platforms (where UINT_MAX equals SIZE_MAX).
333ffd294a1SEnji Cooper                    Impact is denial of service to potentially artitrary code
334ffd294a1SEnji Cooper                    execution.
335ffd294a1SEnji Cooper
336ffd294a1SEnji Cooper        Other changes:
337ffd294a1SEnji Cooper       #851 #879  Autotools: Sync CMake templates with CMake 3.28
338ffd294a1SEnji Cooper            #853  Autotools: Always provide path to find(1) for portability
339ffd294a1SEnji Cooper            #861  Autotools: Ensure that the m4 directory always exists.
340ffd294a1SEnji Cooper            #870  Autotools: Simplify handling of SIZEOF_VOID_P
341ffd294a1SEnji Cooper            #869  Autotools: Support non-GNU sed
342ffd294a1SEnji Cooper            #856  Autotools|CMake: Fix main() to main(void)
343ffd294a1SEnji Cooper            #865  Autotools|CMake: Fix compile tests for HAVE_SYSCALL_GETRANDOM
344ffd294a1SEnji Cooper            #863  Autotools|CMake: Stop requiring dos2unix
345ffd294a1SEnji Cooper       #854 #855  CMake: Fix check for symbols size_t and off_t
346ffd294a1SEnji Cooper            #864  docs|tests: Convert README to Markdown and update
347ffd294a1SEnji Cooper            #741  Windows: Drop support for Visual Studio <=15.0/2017
348ffd294a1SEnji Cooper            #886  Drop needless XML_DTD guards around is_param access
349ffd294a1SEnji Cooper            #885  Fix typo in a code comment
350ffd294a1SEnji Cooper       #894 #896  Version info bumped from 10:2:9 (libexpat*.so.1.9.2)
351ffd294a1SEnji Cooper                    to 10:3:9 (libexpat*.so.1.9.3); see https://verbump.de/
352ffd294a1SEnji Cooper                    for what these numbers do
353ffd294a1SEnji Cooper
354ffd294a1SEnji Cooper        Infrastructure:
355ffd294a1SEnji Cooper            #880  Readme: Promote the call for help
356ffd294a1SEnji Cooper            #868  CI: Fix various issues
357ffd294a1SEnji Cooper            #849  CI: Allow triggering GitHub Actions workflows manually
358ffd294a1SEnji Cooper    #851 #872 ..
359ffd294a1SEnji Cooper       #873 #879  CI: Adapt to breaking changes in GitHub Actions
360ffd294a1SEnji Cooper
361ffd294a1SEnji Cooper        Special thanks to:
362ffd294a1SEnji Cooper            Alexander Bluhm
363ffd294a1SEnji Cooper            Berkay Eren Ürün
364ffd294a1SEnji Cooper            Dag-Erling Smørgrav
365ffd294a1SEnji Cooper            Ferenc Géczi
366ffd294a1SEnji Cooper            TaiYou
367ffd294a1SEnji Cooper
368ffd294a1SEnji CooperRelease 2.6.2 Wed March 13 2024
369ffd294a1SEnji Cooper        Security fixes:
370ffd294a1SEnji Cooper       #839 #842  CVE-2024-28757 -- Prevent billion laughs attacks with
371ffd294a1SEnji Cooper                    isolated use of external parsers.  Please see the commit
372ffd294a1SEnji Cooper                    message of commit 1d50b80cf31de87750103656f6eb693746854aa8
373ffd294a1SEnji Cooper                    for details.
374ffd294a1SEnji Cooper
375ffd294a1SEnji Cooper        Bug fixes:
376ffd294a1SEnji Cooper       #839 #841  Reject direct parameter entity recursion
377ffd294a1SEnji Cooper                    and avoid the related undefined behavior
378ffd294a1SEnji Cooper
379ffd294a1SEnji Cooper        Other changes:
380ffd294a1SEnji Cooper            #847  Autotools: Fix build for DOCBOOK_TO_MAN containing spaces
381ffd294a1SEnji Cooper            #837  Add missing #821 and #824 to 2.6.1 change log
382ffd294a1SEnji Cooper       #838 #843  Version info bumped from 10:1:9 (libexpat*.so.1.9.1)
383ffd294a1SEnji Cooper                    to 10:2:9 (libexpat*.so.1.9.2); see https://verbump.de/
384ffd294a1SEnji Cooper                    for what these numbers do
385ffd294a1SEnji Cooper
386ffd294a1SEnji Cooper        Special thanks to:
387ffd294a1SEnji Cooper            Philippe Antoine
388ffd294a1SEnji Cooper            Tomas Korbar
389ffd294a1SEnji Cooper                 and
390ffd294a1SEnji Cooper            Clang UndefinedBehaviorSanitizer
391ffd294a1SEnji Cooper            OSS-Fuzz / ClusterFuzz
392ffd294a1SEnji Cooper
393ffd294a1SEnji CooperRelease 2.6.1 Thu February 29 2024
394ffd294a1SEnji Cooper        Bug fixes:
395ffd294a1SEnji Cooper            #817  Make tests independent of CPU speed, and thus more robust
396ffd294a1SEnji Cooper       #828 #836  Expose billion laughs API with XML_DTD defined and
397ffd294a1SEnji Cooper                    XML_GE undefined, regression from 2.6.0
398ffd294a1SEnji Cooper
399ffd294a1SEnji Cooper        Other changes:
400ffd294a1SEnji Cooper            #829  Hide test-only code behind new internal macro
401ffd294a1SEnji Cooper            #833  Autotools: Reject expat_config.h.in defining SIZEOF_VOID_P
402ffd294a1SEnji Cooper       #821 #824  Autotools: Fix "make clean" for case:
403ffd294a1SEnji Cooper                    ./configure --without-docbook && make clean all
404ffd294a1SEnji Cooper            #819  Address compiler warnings
405ffd294a1SEnji Cooper       #832 #834  Version info bumped from 10:0:9 (libexpat*.so.1.9.0)
406ffd294a1SEnji Cooper                    to 10:1:9 (libexpat*.so.1.9.1); see https://verbump.de/
407ffd294a1SEnji Cooper                    for what these numbers do
408ffd294a1SEnji Cooper
409ffd294a1SEnji Cooper        Infrastructure:
410ffd294a1SEnji Cooper            #818  CI: Adapt to breaking changes in clang-format
411ffd294a1SEnji Cooper
412ffd294a1SEnji Cooper        Special thanks to:
413ffd294a1SEnji Cooper            David Hall
414ffd294a1SEnji Cooper            Snild Dolkow
4150a48773fSEric van Gyzen
4164543ef51SXin LIRelease 2.6.0 Tue February 6 2024
4174543ef51SXin LI        Security fixes:
4184543ef51SXin LI      #789 #814  CVE-2023-52425 -- Fix quadratic runtime issues with big tokens
4194543ef51SXin LI                   that can cause denial of service, in partial where
4204543ef51SXin LI                   dealing with compressed XML input.  Applications
4214543ef51SXin LI                   that parsed a document in one go -- a single call to
4224543ef51SXin LI                   functions XML_Parse or XML_ParseBuffer -- were not affected.
4234543ef51SXin LI                   The smaller the chunks/buffers you use for parsing
4244543ef51SXin LI                   previously, the bigger the problem prior to the fix.
4254543ef51SXin LI                   Backporters should be careful to no omit parts of
4264543ef51SXin LI                   pull request #789 and to include earlier pull request #771,
4274543ef51SXin LI                   in order to not break the fix.
4284543ef51SXin LI           #777  CVE-2023-52426 -- Fix billion laughs attacks for users
4294543ef51SXin LI                   compiling *without* XML_DTD defined (which is not common).
4304543ef51SXin LI                   Users with XML_DTD defined have been protected since
4314543ef51SXin LI                   Expat >=2.4.0 (and that was CVE-2013-0340 back then).
4324543ef51SXin LI
4334543ef51SXin LI        Bug fixes:
4344543ef51SXin LI            #753  Fix parse-size-dependent "invalid token" error for
4354543ef51SXin LI                    external entities that start with a byte order mark
4364543ef51SXin LI            #780  Fix NULL pointer dereference in setContext via
4374543ef51SXin LI                    XML_ExternalEntityParserCreate for compilation with
4384543ef51SXin LI                    XML_DTD undefined
4394543ef51SXin LI       #812 #813  Protect against closing entities out of order
4404543ef51SXin LI
4414543ef51SXin LI        Other changes:
4424543ef51SXin LI            #723  Improve support for arc4random/arc4random_buf
4434543ef51SXin LI       #771 #788  Improve buffer growth in XML_GetBuffer and XML_Parse
4444543ef51SXin LI       #761 #770  xmlwf: Support --help and --version
4454543ef51SXin LI       #759 #770  xmlwf: Support custom buffer size for XML_GetBuffer and read
4464543ef51SXin LI            #744  xmlwf: Improve language and URL clickability in help output
4474543ef51SXin LI            #673  examples: Add new example "element_declarations.c"
4484543ef51SXin LI            #764  Be stricter about macro XML_CONTEXT_BYTES at build time
4494543ef51SXin LI            #765  Make inclusion to expat_config.h consistent
4504543ef51SXin LI       #726 #727  Autotools: configure.ac: Support --disable-maintainer-mode
4514543ef51SXin LI    #678 #705 ..
4524543ef51SXin LI  #706 #733 #792  Autotools: Sync CMake templates with CMake 3.26
4534543ef51SXin LI            #795  Autotools: Make installation of shipped man page doc/xmlwf.1
4544543ef51SXin LI                    independent of docbook2man availability
4554543ef51SXin LI            #815  Autotools|CMake: Add missing -DXML_STATIC to pkg-config file
4564543ef51SXin LI                    section "Cflags.private" in order to fix compilation
4574543ef51SXin LI                    against static libexpat using pkg-config on Windows
4584543ef51SXin LI       #724 #751  Autotools|CMake: Require a C99 compiler
4594543ef51SXin LI                    (a de-facto requirement already since Expat 2.2.2 of 2017)
4604543ef51SXin LI            #793  Autotools|CMake: Fix PACKAGE_BUGREPORT variable
4614543ef51SXin LI       #750 #786  Autotools|CMake: Make test suite require a C++11 compiler
4624543ef51SXin LI            #749  CMake: Require CMake >=3.5.0
4634543ef51SXin LI            #672  CMake: Lowercase off_t and size_t to help a bug in Meson
4644543ef51SXin LI            #746  CMake: Sort xmlwf sources alphabetically
4654543ef51SXin LI            #785  CMake|Windows: Fix generation of DLL file version info
4664543ef51SXin LI            #790  CMake: Build tests/benchmark/benchmark.c as well for
4674543ef51SXin LI                    a build with -DEXPAT_BUILD_TESTS=ON
4684543ef51SXin LI       #745 #757  docs: Document the importance of isFinal + adjust tests
4694543ef51SXin LI                    accordingly
4704543ef51SXin LI            #736  docs: Improve use of "NULL" and "null"
4714543ef51SXin LI            #713  docs: Be specific about version of XML (XML 1.0r4)
4724543ef51SXin LI                    and version of C (C99); (XML 1.0r5 will need a sponsor.)
4734543ef51SXin LI            #762  docs: reference.html: Promote function XML_ParseBuffer more
4744543ef51SXin LI            #779  docs: reference.html: Add HTML anchors to XML_* macros
4754543ef51SXin LI            #760  docs: reference.html: Upgrade to OK.css 1.2.0
4764543ef51SXin LI       #763 #739  docs: Fix typos
4774543ef51SXin LI            #696  docs|CI: Use HTTPS URLs instead of HTTP at various places
4784543ef51SXin LI    #669 #670 ..
4794543ef51SXin LI    #692 #703 ..
4804543ef51SXin LI       #733 #772  Address compiler warnings
4814543ef51SXin LI       #798 #800  Address clang-tidy warnings
4824543ef51SXin LI       #775 #776  Version info bumped from 9:10:8 (libexpat*.so.1.8.10)
4834543ef51SXin LI                    to 10:0:9 (libexpat*.so.1.9.0); see https://verbump.de/
4844543ef51SXin LI                    for what these numbers do
4854543ef51SXin LI
4864543ef51SXin LI        Infrastructure:
4874543ef51SXin LI       #700 #701  docs: Document security policy in file SECURITY.md
4884543ef51SXin LI            #766  docs: Improve parse buffer variables in-code documentation
4894543ef51SXin LI    #674 #738 ..
4904543ef51SXin LI    #740 #747 ..
4914543ef51SXin LI  #748 #781 #782  Refactor coverage and conformance tests
4924543ef51SXin LI       #714 #716  Refactor debug level variables to unsigned long
4934543ef51SXin LI            #671  Improve handling of empty environment variable value
4944543ef51SXin LI                    in function getDebugLevel (without visible user effect)
4954543ef51SXin LI    #755 #774 ..
4964543ef51SXin LI    #758 #783 ..
4974543ef51SXin LI       #784 #787  tests: Improve test coverage with regard to parse chunk size
4984543ef51SXin LI  #660 #797 #801  Fuzzing: Improve fuzzing coverage
4994543ef51SXin LI       #367 #799  Fuzzing|CI: Start running OSS-Fuzz fuzzing regression tests
5004543ef51SXin LI       #698 #721  CI: Resolve some Travis CI leftovers
5014543ef51SXin LI            #669  CI: Be robust towards absence of Git tags
5024543ef51SXin LI       #693 #694  CI: Set permissions to "contents: read" for security
5034543ef51SXin LI            #709  CI: Pin all GitHub Actions to specific commits for security
5044543ef51SXin LI            #739  CI: Reject spelling errors using codespell
5054543ef51SXin LI            #798  CI: Enforce clang-tidy clean code
5064543ef51SXin LI    #773 #808 ..
5074543ef51SXin LI       #809 #810  CI: Upgrade Clang from 15 to 18
5084543ef51SXin LI            #796  CI: Start using Clang's Control Flow Integrity sanitizer
5094543ef51SXin LI  #675 #720 #722  CI: Adapt to breaking changes in GitHub Actions Ubuntu images
5104543ef51SXin LI            #689  CI: Adapt to breaking changes in Clang/LLVM Debian packaging
5114543ef51SXin LI            #763  CI: Adapt to breaking changes in codespell
5124543ef51SXin LI            #803  CI: Adapt to breaking changes in Cppcheck
5134543ef51SXin LI
5144543ef51SXin LI        Special thanks to:
5154543ef51SXin LI            Ivan Galkin
5164543ef51SXin LI            Joyce Brum
5174543ef51SXin LI            Philippe Antoine
5184543ef51SXin LI            Rhodri James
5194543ef51SXin LI            Snild Dolkow
5204543ef51SXin LI            spookyahell
5214543ef51SXin LI            Steven Garske
5224543ef51SXin LI                 and
5234543ef51SXin LI            Clang AddressSanitizer
5244543ef51SXin LI            Clang UndefinedBehaviorSanitizer
5254543ef51SXin LI            codespell
5264543ef51SXin LI            GCC Farm Project
5274543ef51SXin LI            OSS-Fuzz
5284543ef51SXin LI            Sony Mobile
5294543ef51SXin LI
530dc58b3fcSXin LIRelease 2.5.0 Tue October 25 2022
531dc58b3fcSXin LI        Security fixes:
532dc58b3fcSXin LI  #616 #649 #650  CVE-2022-43680 -- Fix heap use-after-free after overeager
533dc58b3fcSXin LI                    destruction of a shared DTD in function
534dc58b3fcSXin LI                    XML_ExternalEntityParserCreate in out-of-memory situations.
535dc58b3fcSXin LI                    Expected impact is denial of service or potentially
536dc58b3fcSXin LI                    arbitrary code execution.
537dc58b3fcSXin LI
538dc58b3fcSXin LI        Bug fixes:
5394543ef51SXin LI       #612 #645  Fix corruption from undefined entities
540dc58b3fcSXin LI       #613 #654  Fix case when parsing was suspended while processing nested
541dc58b3fcSXin LI                    entities
542dc58b3fcSXin LI  #616 #652 #653  Stop leaking opening tag bindings after a closing tag
543dc58b3fcSXin LI                    mismatch error where a parser is reset through
544dc58b3fcSXin LI                    XML_ParserReset and then reused to parse
545dc58b3fcSXin LI            #656  CMake: Fix generation of pkg-config file
546dc58b3fcSXin LI            #658  MinGW|CMake: Fix static library name
547dc58b3fcSXin LI
548dc58b3fcSXin LI        Other changes:
549dc58b3fcSXin LI            #663  Protect header expat_config.h from multiple inclusion
550dc58b3fcSXin LI            #666  examples: Make use of XML_GetBuffer and be more
551dc58b3fcSXin LI                    consistent across examples
552dc58b3fcSXin LI            #648  Address compiler warnings
553dc58b3fcSXin LI       #667 #668  Version info bumped from 9:9:8 to 9:10:8;
554dc58b3fcSXin LI                    see https://verbump.de/ for what these numbers do
555dc58b3fcSXin LI
556dc58b3fcSXin LI        Special thanks to:
557dc58b3fcSXin LI            Jann Horn
558dc58b3fcSXin LI            Mark Brand
559dc58b3fcSXin LI            Osyotr
560dc58b3fcSXin LI            Rhodri James
561dc58b3fcSXin LI                 and
562dc58b3fcSXin LI            Google Project Zero
563dc58b3fcSXin LI
56471f0c44aSXin LIRelease 2.4.9 Tue September 20 2022
56571f0c44aSXin LI        Security fixes:
56671f0c44aSXin LI       #629 #640  CVE-2022-40674 -- Heap use-after-free vulnerability in
56771f0c44aSXin LI                    function doContent. Expected impact is denial of service
56871f0c44aSXin LI                    or potentially arbitrary code execution.
56971f0c44aSXin LI
57071f0c44aSXin LI        Bug fixes:
57171f0c44aSXin LI            #634  MinGW: Fix mis-compilation for -D__USE_MINGW_ANSI_STDIO=0
57271f0c44aSXin LI            #614  docs: Fix documentation on effect of switch XML_DTD on
57371f0c44aSXin LI                    symbol visibility in doc/reference.html
57471f0c44aSXin LI
57571f0c44aSXin LI        Other changes:
57671f0c44aSXin LI            #638  MinGW: Make fix-xmltest-log.sh drop more Wine bug output
57771f0c44aSXin LI       #596 #625  Autotools: Sync CMake templates with CMake 3.22
57871f0c44aSXin LI            #608  CMake: Migrate from use of CMAKE_*_POSTFIX to
57971f0c44aSXin LI                    dedicated variables EXPAT_*_POSTFIX to stop affecting
58071f0c44aSXin LI                    other projects
58171f0c44aSXin LI       #597 #599  Windows|CMake: Add missing -DXML_STATIC to test runners
58271f0c44aSXin LI                    and fuzzers
58371f0c44aSXin LI       #512 #621  Windows|CMake: Render .def file from a template to fix
58471f0c44aSXin LI                    linking with -DEXPAT_DTD=OFF and/or -DEXPAT_ATTR_INFO=ON
58571f0c44aSXin LI       #611 #621  MinGW|CMake: Apply MSVC .def file when linking
58671f0c44aSXin LI       #622 #624  MinGW|CMake: Sync library name with GNU Autotools,
58771f0c44aSXin LI                    i.e. produce libexpat-1.dll rather than libexpat.dll
58871f0c44aSXin LI                    by default.  Filename libexpat.dll.a is unaffected.
58971f0c44aSXin LI            #632  MinGW|CMake: Set missing variable CMAKE_RC_COMPILER in
59071f0c44aSXin LI                    toolchain file "cmake/mingw-toolchain.cmake" to avoid
59171f0c44aSXin LI                    error "windres: Command not found" on e.g. Ubuntu 20.04
59271f0c44aSXin LI       #597 #627  CMake: Unify inconsistent use of set() and option() in
59371f0c44aSXin LI                    context of public build time options to take need for
59471f0c44aSXin LI                    set(.. FORCE) in projects using Expat by means of
59571f0c44aSXin LI                    add_subdirectory(..) off Expat's users' shoulders
59671f0c44aSXin LI       #626 #641  Stop exporting API symbols when building a static library
59771f0c44aSXin LI            #644  Resolve use of deprecated "fgrep" by "grep -F"
59871f0c44aSXin LI            #620  CMake: Make documentation on variables a bit more consistent
59971f0c44aSXin LI            #636  CMake: Drop leading whitespace from a #cmakedefine line in
60071f0c44aSXin LI                    file expat_config.h.cmake
60171f0c44aSXin LI            #594  xmlwf: Fix harmless variable mix-up in function nsattcmp
60271f0c44aSXin LI  #592 #593 #610  Address Cppcheck warnings
60371f0c44aSXin LI            #643  Address Clang 15 compiler warnings
60471f0c44aSXin LI       #642 #644  Version info bumped from 9:8:8 to 9:9:8;
60571f0c44aSXin LI                    see https://verbump.de/ for what these numbers do
60671f0c44aSXin LI
60771f0c44aSXin LI        Infrastructure:
60871f0c44aSXin LI       #597 #598  CI: Windows: Start covering MSVC 2022
60971f0c44aSXin LI            #619  CI: macOS: Migrate off deprecated macOS 10.15
61071f0c44aSXin LI            #632  CI: Linux: Make migration off deprecated Ubuntu 18.04 work
61171f0c44aSXin LI            #643  CI: Upgrade Clang from 14 to 15
61271f0c44aSXin LI            #637  apply-clang-format.sh: Add support for BSD find
61371f0c44aSXin LI            #633  coverage.sh: Exclude MinGW headers
61471f0c44aSXin LI            #635  coverage.sh: Fix name collision for -funsigned-char
61571f0c44aSXin LI
61671f0c44aSXin LI        Special thanks to:
61771f0c44aSXin LI            David Faure
61871f0c44aSXin LI            Felix Wilhelm
61971f0c44aSXin LI            Frank Bergmann
62071f0c44aSXin LI            Rhodri James
62171f0c44aSXin LI            Rosen Penev
62271f0c44aSXin LI            Thijs Schreijer
62371f0c44aSXin LI            Vincent Torri
62471f0c44aSXin LI                 and
62571f0c44aSXin LI            Google Project Zero
62671f0c44aSXin LI
62771f0c44aSXin LIRelease 2.4.8 Mon March 28 2022
62871f0c44aSXin LI        Other changes:
62971f0c44aSXin LI            #587  pkg-config: Move "-lm" to section "Libs.private"
63071f0c44aSXin LI            #587  CMake|MSVC: Fix pkg-config section "Libs"
63171f0c44aSXin LI        #55 #582  CMake|macOS: Start using linker arguments
63271f0c44aSXin LI                    "-compatibility_version <version>" and
63371f0c44aSXin LI                    "-current_version <version>" in a way compatible with
63471f0c44aSXin LI                    GNU Libtool
63571f0c44aSXin LI       #590 #591  Version info bumped from 9:7:8 to 9:8:8;
63671f0c44aSXin LI                    see https://verbump.de/ for what these numbers do
63771f0c44aSXin LI
63871f0c44aSXin LI        Infrastructure:
63971f0c44aSXin LI            #589  CI: Upgrade Clang from 13 to 14
64071f0c44aSXin LI
64171f0c44aSXin LI        Special thanks to:
64271f0c44aSXin LI            evpobr
64371f0c44aSXin LI            Kai Pastor
64471f0c44aSXin LI            Sam James
64571f0c44aSXin LI
6467ed8e142SXin LIRelease 2.4.7 Fri March 4 2022
6477ed8e142SXin LI        Bug fixes:
6487ed8e142SXin LI       #572 #577  Relax fix to CVE-2022-25236 (introduced with release 2.4.5)
6497ed8e142SXin LI                    with regard to all valid URI characters (RFC 3986),
6507ed8e142SXin LI                    i.e. the following set (excluding whitespace):
6517ed8e142SXin LI                    ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz
6527ed8e142SXin LI                    0123456789 % -._~ :/?#[]@ !$&'()*+,;=
6537ed8e142SXin LI
6547ed8e142SXin LI        Other changes:
6557ed8e142SXin LI  #555 #570 #581  CMake|Windows: Store Expat version in the DLL
6567ed8e142SXin LI            #577  Document consequences of namespace separator choices not just
6577ed8e142SXin LI                    in doc/reference.html but also in header <expat.h>
6587ed8e142SXin LI            #577  Document Expat's lack of validation of namespace URIs against
6597ed8e142SXin LI                    RFC 3986, and that the XML 1.0r4 specification doesn't
6607ed8e142SXin LI                    require Expat to validate namespace URIs, and that Expat
6617ed8e142SXin LI                    may do more in that regard in future releases.
6627ed8e142SXin LI                    If you find need for strict RFC 3986 URI validation on
6637ed8e142SXin LI                    application level today, https://uriparser.github.io/ may
6647ed8e142SXin LI                    be of interest.
6657ed8e142SXin LI            #579  Fix documentation of XML_EndDoctypeDeclHandler in <expat.h>
6667ed8e142SXin LI            #575  Document that a call to XML_FreeContentModel can be done at
6677ed8e142SXin LI                    a later time from outside the element declaration handler
6687ed8e142SXin LI            #574  Make hardcoded namespace URIs easier to find in code
6697ed8e142SXin LI            #573  Update documentation on use of XML_POOR_ENTOPY on Solaris
6707ed8e142SXin LI       #569 #571  tests: Resolve use of macros NAN and INFINITY for GNU G++
6717ed8e142SXin LI                    4.8.2 on Solaris.
6727ed8e142SXin LI       #578 #580  Version info bumped from 9:6:8 to 9:7:8;
6737ed8e142SXin LI                    see https://verbump.de/ for what these numbers do
6747ed8e142SXin LI
6757ed8e142SXin LI        Special thanks to:
6767ed8e142SXin LI            Jeffrey Walton
6777ed8e142SXin LI            Johnny Jazeix
6787ed8e142SXin LI            Thijs Schreijer
6797ed8e142SXin LI
680ac69e5d4SEric van GyzenRelease 2.4.6 Sun February 20 2022
681ac69e5d4SEric van Gyzen        Bug fixes:
682ac69e5d4SEric van Gyzen            #566  Fix a regression introduced by the fix for CVE-2022-25313
683ac69e5d4SEric van Gyzen                    in release 2.4.5 that affects applications that (1)
684ac69e5d4SEric van Gyzen                    call function XML_SetElementDeclHandler and (2) are
685ac69e5d4SEric van Gyzen                    parsing XML that contains nested element declarations
686ac69e5d4SEric van Gyzen                    (e.g. "<!ELEMENT junk ((bar|foo|xyz+), zebra*)>").
687ac69e5d4SEric van Gyzen
688ac69e5d4SEric van Gyzen        Other changes:
689ac69e5d4SEric van Gyzen       #567 #568  Version info bumped from 9:5:8 to 9:6:8;
690ac69e5d4SEric van Gyzen                    see https://verbump.de/ for what these numbers do
691ac69e5d4SEric van Gyzen
692ac69e5d4SEric van Gyzen        Special thanks to:
693ac69e5d4SEric van Gyzen            Matt Sergeant
694ac69e5d4SEric van Gyzen            Samanta Navarro
695ac69e5d4SEric van Gyzen            Sergei Trofimovich
696ac69e5d4SEric van Gyzen                 and
697ac69e5d4SEric van Gyzen            NixOS
698ac69e5d4SEric van Gyzen            Perl XML::Parser
699ac69e5d4SEric van Gyzen
700ac69e5d4SEric van GyzenRelease 2.4.5 Fri February 18 2022
701ac69e5d4SEric van Gyzen        Security fixes:
702ac69e5d4SEric van Gyzen            #562  CVE-2022-25235 -- Passing malformed 2- and 3-byte UTF-8
703ac69e5d4SEric van Gyzen                    sequences (e.g. from start tag names) to the XML
704ac69e5d4SEric van Gyzen                    processing application on top of Expat can cause
705ac69e5d4SEric van Gyzen                    arbitrary damage (e.g. code execution) depending
706ac69e5d4SEric van Gyzen                    on how invalid UTF-8 is handled inside the XML
707ac69e5d4SEric van Gyzen                    processor; validation was not their job but Expat's.
708ac69e5d4SEric van Gyzen                    Exploits with code execution are known to exist.
709ac69e5d4SEric van Gyzen            #561  CVE-2022-25236 -- Passing (one or more) namespace separator
710ac69e5d4SEric van Gyzen                    characters in "xmlns[:prefix]" attribute values
711ac69e5d4SEric van Gyzen                    made Expat send malformed tag names to the XML
712ac69e5d4SEric van Gyzen                    processor on top of Expat which can cause
713ac69e5d4SEric van Gyzen                    arbitrary damage (e.g. code execution) depending
714ac69e5d4SEric van Gyzen                    on such unexpectable cases are handled inside the XML
715ac69e5d4SEric van Gyzen                    processor; validation was not their job but Expat's.
716ac69e5d4SEric van Gyzen                    Exploits with code execution are known to exist.
717ac69e5d4SEric van Gyzen            #558  CVE-2022-25313 -- Fix stack exhaustion in doctype parsing
718ac69e5d4SEric van Gyzen                    that could be triggered by e.g. a 2 megabytes
719ac69e5d4SEric van Gyzen                    file with a large number of opening braces.
720ac69e5d4SEric van Gyzen                    Expected impact is denial of service or potentially
721ac69e5d4SEric van Gyzen                    arbitrary code execution.
722ac69e5d4SEric van Gyzen            #560  CVE-2022-25314 -- Fix integer overflow in function copyString;
723ac69e5d4SEric van Gyzen                    only affects the encoding name parameter at parser creation
724ac69e5d4SEric van Gyzen                    time which is often hardcoded (rather than user input),
725ac69e5d4SEric van Gyzen                    takes a value in the gigabytes to trigger, and a 64-bit
726ac69e5d4SEric van Gyzen                    machine.  Expected impact is denial of service.
727ac69e5d4SEric van Gyzen            #559  CVE-2022-25315 -- Fix integer overflow in function storeRawNames;
728ac69e5d4SEric van Gyzen                    needs input in the gigabytes and a 64-bit machine.
729ac69e5d4SEric van Gyzen                    Expected impact is denial of service or potentially
730ac69e5d4SEric van Gyzen                    arbitrary code execution.
731ac69e5d4SEric van Gyzen
732ac69e5d4SEric van Gyzen        Other changes:
733ac69e5d4SEric van Gyzen       #557 #564  Version info bumped from 9:4:8 to 9:5:8;
734ac69e5d4SEric van Gyzen                    see https://verbump.de/ for what these numbers do
735ac69e5d4SEric van Gyzen
736ac69e5d4SEric van Gyzen        Special thanks to:
737ac69e5d4SEric van Gyzen            Ivan Fratric
738ac69e5d4SEric van Gyzen            Samanta Navarro
739ac69e5d4SEric van Gyzen                 and
740ac69e5d4SEric van Gyzen            Google Project Zero
741ac69e5d4SEric van Gyzen            JetBrains
742ac69e5d4SEric van Gyzen
743ac69e5d4SEric van GyzenRelease 2.4.4 Sun January 30 2022
744ac69e5d4SEric van Gyzen        Security fixes:
745ac69e5d4SEric van Gyzen            #550  CVE-2022-23852 -- Fix signed integer overflow
746ac69e5d4SEric van Gyzen                    (undefined behavior) in function XML_GetBuffer
747ac69e5d4SEric van Gyzen                    (that is also called by function XML_Parse internally)
748ac69e5d4SEric van Gyzen                    for when XML_CONTEXT_BYTES is defined to >0 (which is both
749ac69e5d4SEric van Gyzen                    common and default).
750ac69e5d4SEric van Gyzen                    Impact is denial of service or more.
751ac69e5d4SEric van Gyzen            #551  CVE-2022-23990 -- Fix unsigned integer overflow in function
752ac69e5d4SEric van Gyzen                    doProlog triggered by large content in element type
753ac69e5d4SEric van Gyzen                    declarations when there is an element declaration handler
754ac69e5d4SEric van Gyzen                    present (from a prior call to XML_SetElementDeclHandler).
755ac69e5d4SEric van Gyzen                    Impact is denial of service or more.
756ac69e5d4SEric van Gyzen
757ac69e5d4SEric van Gyzen        Bug fixes:
758ac69e5d4SEric van Gyzen       #544 #545  xmlwf: Fix a memory leak on output file opening error
759ac69e5d4SEric van Gyzen
760ac69e5d4SEric van Gyzen        Other changes:
761ac69e5d4SEric van Gyzen            #546  Autotools: Fix broken CMake support under Cygwin
762ac69e5d4SEric van Gyzen            #554  Windows: Add missing files to the installer to fix
763ac69e5d4SEric van Gyzen                    compilation with CMake from installed sources
764ac69e5d4SEric van Gyzen       #552 #554  Version info bumped from 9:3:8 to 9:4:8;
765ac69e5d4SEric van Gyzen                    see https://verbump.de/ for what these numbers do
766ac69e5d4SEric van Gyzen
767ac69e5d4SEric van Gyzen        Special thanks to:
768ac69e5d4SEric van Gyzen            Carlo Bramini
769ac69e5d4SEric van Gyzen            hwt0415
770ac69e5d4SEric van Gyzen            Roland Illig
771ac69e5d4SEric van Gyzen            Samanta Navarro
772ac69e5d4SEric van Gyzen                 and
773ac69e5d4SEric van Gyzen            Clang LeakSan and the Clang team
774ac69e5d4SEric van Gyzen
775cc68614dSXin LIRelease 2.4.3 Sun January 16 2022
776cc68614dSXin LI        Security fixes:
777cc68614dSXin LI       #531 #534  CVE-2021-45960 -- Fix issues with left shifts by >=29 places
778cc68614dSXin LI                    resulting in
779cc68614dSXin LI                      a) realloc acting as free
780cc68614dSXin LI                      b) realloc allocating too few bytes
781cc68614dSXin LI                      c) undefined behavior
782cc68614dSXin LI                    depending on architecture and precise value
783cc68614dSXin LI                    for XML documents with >=2^27+1 prefixed attributes
784cc68614dSXin LI                    on a single XML tag a la
785cc68614dSXin LI                    "<r xmlns:a='[..]' a:a123='[..]' [..] />"
786cc68614dSXin LI                    where XML_ParserCreateNS is used to create the parser
787cc68614dSXin LI                    (which needs argument "-n" when running xmlwf).
788cc68614dSXin LI                    Impact is denial of service, or more.
789cc68614dSXin LI       #532 #538  CVE-2021-46143 (ZDI-CAN-16157) -- Fix integer overflow
790cc68614dSXin LI                    on variable m_groupSize in function doProlog leading
791cc68614dSXin LI                    to realloc acting as free.
792cc68614dSXin LI                    Impact is denial of service or more.
793cc68614dSXin LI            #539  CVE-2022-22822 to CVE-2022-22827 -- Prevent integer overflows
794cc68614dSXin LI                    near memory allocation at multiple places.  Mitre assigned
795cc68614dSXin LI                    a dedicated CVE for each involved internal C function:
796cc68614dSXin LI                    - CVE-2022-22822 for function addBinding
797cc68614dSXin LI                    - CVE-2022-22823 for function build_model
798cc68614dSXin LI                    - CVE-2022-22824 for function defineAttribute
799cc68614dSXin LI                    - CVE-2022-22825 for function lookup
800cc68614dSXin LI                    - CVE-2022-22826 for function nextScaffoldPart
801cc68614dSXin LI                    - CVE-2022-22827 for function storeAtts
802cc68614dSXin LI                    Impact is denial of service or more.
803cc68614dSXin LI
804cc68614dSXin LI        Other changes:
805cc68614dSXin LI            #535  CMake: Make call to file(GENERATE [..]) work for CMake <3.19
806cc68614dSXin LI            #541  Autotools|CMake: MinGW: Make run.sh(.in) work for Cygwin
807cc68614dSXin LI                    and MSYS2 by not going through Wine on these platforms
808cc68614dSXin LI       #527 #528  Address compiler warnings
809cc68614dSXin LI       #533 #543  Version info bumped from 9:2:8 to 9:3:8;
810cc68614dSXin LI                    see https://verbump.de/ for what these numbers do
811cc68614dSXin LI
812cc68614dSXin LI        Infrastructure:
813cc68614dSXin LI            #536  CI: Check for realistic minimum CMake version
814cc68614dSXin LI       #529 #539  CI: Cover compilation with -m32
815cc68614dSXin LI            #529  CI: Store coverage reports as artifacts for download
816cc68614dSXin LI            #528  CI: Upgrade Clang from 11 to 13
817cc68614dSXin LI
818cc68614dSXin LI        Special thanks to:
819cc68614dSXin LI            An anonymous whitehat
820cc68614dSXin LI            Christopher Degawa
821cc68614dSXin LI            J. Peter Mugaas
822cc68614dSXin LI            Tyson Smith
823cc68614dSXin LI                 and
824cc68614dSXin LI            GCC Farm Project
825cc68614dSXin LI            Trend Micro Zero Day Initiative
826cc68614dSXin LI
827cc68614dSXin LIRelease 2.4.2 Sun December 19 2021
828cc68614dSXin LI        Other changes:
829cc68614dSXin LI       #509 #510  Link againgst libm for function "isnan"
830cc68614dSXin LI       #513 #514  Include expat_config.h as early as possible
831cc68614dSXin LI            #498  Autotools: Include files with release archives:
832cc68614dSXin LI                    - buildconf.sh
833cc68614dSXin LI                    - fuzz/*.c
83471f0c44aSXin LI       #507 #519  Autotools: Sync CMake templates with CMake 3.20
835cc68614dSXin LI       #495 #524  CMake: MinGW: Fix pkg-config section "Libs" for
836cc68614dSXin LI                    - non-release build types (e.g. -DCMAKE_BUILD_TYPE=Debug)
837cc68614dSXin LI                    - multi-config CMake generators (e.g. Ninja Multi-Config)
838cc68614dSXin LI       #502 #503  docs: Document that function XML_GetBuffer may return NULL
839cc68614dSXin LI                    when asking for a buffer of 0 (zero) bytes size
840cc68614dSXin LI       #522 #523  docs: Fix return value docs for both
841cc68614dSXin LI                    XML_SetBillionLaughsAttackProtection* functions
842cc68614dSXin LI       #525 #526  Version info bumped from 9:1:8 to 9:2:8;
843cc68614dSXin LI                    see https://verbump.de/ for what these numbers do
844cc68614dSXin LI
845cc68614dSXin LI        Special thanks to:
8464543ef51SXin LI            Donghee Na
847cc68614dSXin LI            Joergen Ibsen
848cc68614dSXin LI            Kai Pastor
849cc68614dSXin LI
850cc68614dSXin LIRelease 2.4.1 Sun May 23 2021
851cc68614dSXin LI        Bug fixes:
852cc68614dSXin LI       #488 #490  Autotools: Fix installed header expat_config.h for multilib
853cc68614dSXin LI                    systems; regression introduced in 2.4.0 by pull request #486
854cc68614dSXin LI
855cc68614dSXin LI        Other changes:
856cc68614dSXin LI       #491 #492  Version info bumped from 9:0:8 to 9:1:8;
857cc68614dSXin LI                    see https://verbump.de/ for what these numbers do
858cc68614dSXin LI
859cc68614dSXin LI        Special thanks to:
860cc68614dSXin LI            Gentoo's QA check "multilib_check_headers"
861cc68614dSXin LI
862cc68614dSXin LIRelease 2.4.0 Sun May 23 2021
863cc68614dSXin LI        Security fixes:
864cc68614dSXin LI   #34 #466 #484  CVE-2013-0340/CWE-776 -- Protect against billion laughs attacks
865cc68614dSXin LI                    (denial-of-service; flavors targeting CPU time or RAM or both,
866cc68614dSXin LI                    leveraging general entities or parameter entities or both)
867cc68614dSXin LI                    by tracking and limiting the input amplification factor
868cc68614dSXin LI                    (<amplification> := (<direct> + <indirect>) / <direct>).
869cc68614dSXin LI                    By conservative default, amplification up to a factor of 100.0
870cc68614dSXin LI                    is tolerated and rejection only starts after 8 MiB of output bytes
871cc68614dSXin LI                    (=<direct> + <indirect>) have been processed.
872cc68614dSXin LI                    The fix adds the following to the API:
873cc68614dSXin LI                    - A new error code XML_ERROR_AMPLIFICATION_LIMIT_BREACH to
874cc68614dSXin LI                      signals this specific condition.
875cc68614dSXin LI                    - Two new API functions ..
876cc68614dSXin LI                      - XML_SetBillionLaughsAttackProtectionMaximumAmplification and
877cc68614dSXin LI                      - XML_SetBillionLaughsAttackProtectionActivationThreshold
878cc68614dSXin LI                      .. to further tighten billion laughs protection parameters
879cc68614dSXin LI                      when desired.  Please see file "doc/reference.html" for details.
880cc68614dSXin LI                      If you ever need to increase the defaults for non-attack XML
881cc68614dSXin LI                      payload, please file a bug report with libexpat.
882cc68614dSXin LI                    - Two new XML_FEATURE_* constants ..
883cc68614dSXin LI                      - that can be queried using the XML_GetFeatureList function, and
884cc68614dSXin LI                      - that are shown in "xmlwf -v" output.
885cc68614dSXin LI                    - Two new environment variable switches ..
886cc68614dSXin LI                      - EXPAT_ACCOUNTING_DEBUG=(0|1|2|3) and
887cc68614dSXin LI                      - EXPAT_ENTITY_DEBUG=(0|1)
888cc68614dSXin LI                      .. for runtime debugging of accounting and entity processing.
889cc68614dSXin LI                      Specific behavior of these values may change in the future.
890cc68614dSXin LI                    - Two new command line arguments "-a FACTOR" and "-b BYTES"
891cc68614dSXin LI                      for xmlwf to further tighten billion laughs protection
892cc68614dSXin LI                      parameters when desired.
893cc68614dSXin LI                      If you ever need to increase the defaults for non-attack XML
894cc68614dSXin LI                      payload, please file a bug report with libexpat.
895cc68614dSXin LI
896cc68614dSXin LI        Bug fixes:
897cc68614dSXin LI       #332 #470  For (non-default) compilation with -DEXPAT_MIN_SIZE=ON (CMake)
898cc68614dSXin LI                    or CPPFLAGS=-DXML_MIN_SIZE (GNU Autotools): Fix segfault
899cc68614dSXin LI                    for UTF-16 payloads containing CDATA sections.
900cc68614dSXin LI       #485 #486  Autotools: Fix generated CMake files for non-64bit and
901cc68614dSXin LI                    non-Linux platforms (e.g. macOS and MinGW in particular)
902cc68614dSXin LI                    that were introduced with release 2.3.0
903cc68614dSXin LI
904cc68614dSXin LI        Other changes:
905cc68614dSXin LI       #468 #469  xmlwf: Improve help output and the xmlwf man page
906cc68614dSXin LI            #463  xmlwf: Improve maintainability through some refactoring
907cc68614dSXin LI            #477  xmlwf: Fix man page DocBook validity
90871f0c44aSXin LI            #456  Autotools: Sync CMake templates with CMake 3.18
909cc68614dSXin LI       #458 #459  CMake: Support absolute paths for both CMAKE_INSTALL_LIBDIR
910cc68614dSXin LI                    and CMAKE_INSTALL_INCLUDEDIR
911cc68614dSXin LI       #471 #481  CMake: Add support for standard variable BUILD_SHARED_LIBS
912cc68614dSXin LI            #457  Unexpose symbol _INTERNAL_trim_to_complete_utf8_characters
913cc68614dSXin LI            #467  Resolve macro HAVE_EXPAT_CONFIG_H
914cc68614dSXin LI            #472  Delete unused legacy helper file "conftools/PrintPath"
915cc68614dSXin LI       #473 #483  Improve attribution
916cc68614dSXin LI  #464 #465 #477  doc/reference.html: Fix XHTML validity
917cc68614dSXin LI       #475 #478  doc/reference.html: Replace the 90s look by OK.css
918cc68614dSXin LI            #479  Version info bumped from 8:0:7 to 9:0:8
919cc68614dSXin LI                    due to addition of new symbols and error codes;
920cc68614dSXin LI                    see https://verbump.de/ for what these numbers do
921cc68614dSXin LI
922cc68614dSXin LI        Infrastructure:
923cc68614dSXin LI            #456  CI: Enable periodic runs
924cc68614dSXin LI            #457  CI: Start covering the list of exported symbols
925cc68614dSXin LI            #474  CI: Isolate coverage task
926cc68614dSXin LI       #476 #482  CI: Adapt to breaking changes in image "ubuntu-18.04"
927cc68614dSXin LI            #477  CI: Cover well-formedness and DocBook/XHTML validity
928cc68614dSXin LI                    of doc/reference.html and doc/xmlwf.xml
929cc68614dSXin LI
930cc68614dSXin LI        Special thanks to:
931cc68614dSXin LI            Dimitry Andric
932cc68614dSXin LI            Eero Helenius
933cc68614dSXin LI            Nick Wellnhofer
934cc68614dSXin LI            Rhodri James
935cc68614dSXin LI            Tomas Korbar
936cc68614dSXin LI            Yury Gribov
937cc68614dSXin LI                 and
938cc68614dSXin LI            Clang LeakSan
939cc68614dSXin LI            JetBrains
940cc68614dSXin LI            OSS-Fuzz
941cc68614dSXin LI
942cc68614dSXin LIRelease 2.3.0 Thu March 25 2021
943cc68614dSXin LI        Bug fixes:
944cc68614dSXin LI            #438  When calling XML_ParseBuffer without a prior successful call to
945cc68614dSXin LI                    XML_GetBuffer as a user, no longer trigger undefined behavior
946cc68614dSXin LI                    (by adding an integer to a NULL pointer) but rather return
947cc68614dSXin LI                    XML_STATUS_ERROR and set the error code to (new) code
948cc68614dSXin LI                    XML_ERROR_NO_BUFFER. Found by UBSan (UndefinedBehaviorSanitizer)
949cc68614dSXin LI                    of Clang 11 (but not Clang 9).
950cc68614dSXin LI            #444  xmlwf: Exit status 2 was used for both:
951cc68614dSXin LI                    - malformed input files (documented) and
952cc68614dSXin LI                    - invalid command-line arguments (undocumented).
953cc68614dSXin LI                    The case of invalid command-line arguments now
954cc68614dSXin LI                    has its own exit status 4, resolving the ambiguity.
955cc68614dSXin LI
956cc68614dSXin LI        Other changes:
957cc68614dSXin LI            #439  xmlwf: Add argument -k to allow continuing after
958cc68614dSXin LI                    non-fatal errors
959cc68614dSXin LI            #439  xmlwf: Add section about exit status to the -h help output
960cc68614dSXin LI  #422 #426 #447  Windows: Drop support for Visual Studio <=14.0/2015
961cc68614dSXin LI            #434  Windows: CMake: Detect unsupported Visual Studio at
962cc68614dSXin LI                    configure time (rather than at compile time)
963cc68614dSXin LI       #382 #428  testrunner: Make verbose mode (argument "-v") report
964cc68614dSXin LI                    about passed tests, and make default mode report about
965cc68614dSXin LI                    failures, as well.
966cc68614dSXin LI            #442  CMake: Call "enable_language(CXX)" prior to tinkering
967cc68614dSXin LI                    with CMAKE_CXX_* variables
968cc68614dSXin LI            #448  Document use of libexpat from a CMake-based project
969cc68614dSXin LI            #451  Autotools: Install CMake files as generated by CMake 3.19.6
970cc68614dSXin LI                    so that users with "find_package(expat [..] CONFIG [..])"
971cc68614dSXin LI                    are served on distributions that are *not* using the CMake
972cc68614dSXin LI                    build system inside for libexpat packaging
973cc68614dSXin LI       #436 #437  Autotools: Drop obsolescent macro AC_HEADER_STDC
974cc68614dSXin LI       #450 #452  Autotools: Resolve use of obsolete macro AC_CONFIG_HEADER
975cc68614dSXin LI            #441  Address compiler warnings
976cc68614dSXin LI            #443  Version info bumped from 7:12:6 to 8:0:7
977cc68614dSXin LI                    due to addition of error code XML_ERROR_NO_BUFFER
978cc68614dSXin LI                    (see https://verbump.de/ for what these numbers do)
979cc68614dSXin LI
980cc68614dSXin LI        Infrastructure:
981cc68614dSXin LI       #435 #446  Replace Travis CI by GitHub Actions
982cc68614dSXin LI
983cc68614dSXin LI        Special thanks to:
984cc68614dSXin LI            Alexander Richardson
985cc68614dSXin LI            Oleksandr Popovych
986cc68614dSXin LI            Thomas Beutlich
987cc68614dSXin LI            Tim Bray
988cc68614dSXin LI                 and
989cc68614dSXin LI            Clang LeakSan, Clang 11 UBSan and the Clang team
990cc68614dSXin LI
991cc68614dSXin LIRelease 2.2.10 Sat October 3 2020
992cc68614dSXin LI        Bug fixes:
993cc68614dSXin LI  #390 #395 #398  Fix undefined behavior during parsing caused by
994cc68614dSXin LI                    pointer arithmetic with NULL pointers
995cc68614dSXin LI       #404 #405  Fix reading uninitialized variable during parsing
996cc68614dSXin LI            #406  xmlwf: Add missing check for malloc NULL return
997cc68614dSXin LI
998cc68614dSXin LI        Other changes:
999cc68614dSXin LI            #396  Windows: Drop support for Visual Studio <=8.0/2005
1000cc68614dSXin LI            #409  Windows: Add missing file "Changes" to the installer
1001cc68614dSXin LI                    to fix compilation with CMake from installed sources
1002cc68614dSXin LI            #403  xmlwf: Document exit codes in xmlwf manpage and
1003cc68614dSXin LI                    exit with code 3 (rather than code 1) for output errors
1004cc68614dSXin LI                    when used with "-d DIRECTORY"
1005cc68614dSXin LI       #356 #359  MinGW: Provide declaration of rand_s for mingwrt <5.3.0
1006cc68614dSXin LI       #383 #392  Autotools: Use -Werror while configure tests the compiler
1007cc68614dSXin LI                    for supported compile flags to avoid false positives
1008cc68614dSXin LI  #383 #393 #394  Autotools: Improve handling of user (C|CPP|CXX|LD)FLAGS,
1009cc68614dSXin LI                    e.g. ensure that they have the last word over flags added
1010cc68614dSXin LI                    while running ./configure
1011cc68614dSXin LI            #360  CMake: Create libexpatw.{dll,so} and expatw.pc (with emphasis
1012cc68614dSXin LI                    on suffix "w") with -DEXPAT_CHAR_TYPE=(ushort|wchar_t)
1013cc68614dSXin LI            #360  CMake: Detect and deny unsupported build combinations
1014cc68614dSXin LI                    involving -DEXPAT_CHAR_TYPE=(ushort|wchar_t)
1015cc68614dSXin LI            #360  CMake: Install pre-compiled shipped xmlwf.1 manpage in case
1016cc68614dSXin LI                    of -DEXPAT_BUILD_DOCS=OFF
1017cc68614dSXin LI  #375 #380 #419  CMake: Fix use of Expat by means of add_subdirectory
1018cc68614dSXin LI       #407 #408  CMake: Keep expat target name constant at "expat"
1019cc68614dSXin LI                    (i.e. refrain from using the target name to control
1020cc68614dSXin LI                    build artifact filenames)
1021cc68614dSXin LI            #385  CMake: Fix compilation with -DEXPAT_SHARED_LIBS=OFF for
1022cc68614dSXin LI                    Windows
1023cc68614dSXin LI                  CMake: Expose man page compilation as target "xmlwf-manpage"
1024cc68614dSXin LI       #413 #414  CMake: Introduce option EXPAT_BUILD_PKGCONFIG
1025cc68614dSXin LI                    to control generation of pkg-config file "expat.pc"
1026cc68614dSXin LI            #424  CMake: Add minimalistic support for building binary packages
1027cc68614dSXin LI                    with CMake target "package"; based on CPack
1028cc68614dSXin LI            #366  CMake: Add option -DEXPAT_OSSFUZZ_BUILD=(ON|OFF) with
1029cc68614dSXin LI                    default OFF to build fuzzer code against OSS-Fuzz and
1030cc68614dSXin LI                    related environment variable LIB_FUZZING_ENGINE
1031cc68614dSXin LI            #354  Fix testsuite for -DEXPAT_DTD=OFF and -DEXPAT_NS=OFF, each
1032cc68614dSXin LI    #354 #355 ..
1033cc68614dSXin LI       #356 #412  Address compiler warnings
1034cc68614dSXin LI       #368 #369  Address pngcheck warnings with doc/*.png images
1035cc68614dSXin LI            #425  Version info bumped from 7:11:6 to 7:12:6
1036cc68614dSXin LI
1037cc68614dSXin LI        Special thanks to:
1038cc68614dSXin LI            asavah
1039cc68614dSXin LI            Ben Wagner
1040cc68614dSXin LI            Bhargava Shastry
1041cc68614dSXin LI            Frank Landgraf
1042cc68614dSXin LI            Jeffrey Walton
1043cc68614dSXin LI            Joe Orton
1044cc68614dSXin LI            Kleber Tarcísio
1045cc68614dSXin LI            Ma Lin
1046cc68614dSXin LI            Maciej Sroczyński
1047cc68614dSXin LI            Mohammed Khajapasha
1048cc68614dSXin LI            Vadim Zeitlin
1049cc68614dSXin LI                 and
1050cc68614dSXin LI            Cppcheck 2.0 and the Cppcheck team
1051cc68614dSXin LI
1052cc68614dSXin LIRelease 2.2.9 Wed September 25 2019
10536b2c1e49SXin LI        Other changes:
10546b2c1e49SXin LI                  examples: Drop executable bits from elements.c
10556b2c1e49SXin LI            #349  Windows: Change the name of the Windows DLLs from expat*.dll
10566b2c1e49SXin LI                    to libexpat*.dll once more (regression from 2.2.8, first
10576b2c1e49SXin LI                    fixed in 1.95.3, issue #61 on SourceForge today,
10586b2c1e49SXin LI                    was issue #432456 back then); needs a fix due
10596b2c1e49SXin LI                    case-insensitive file systems on Windows and the fact that
10606b2c1e49SXin LI                    Perl's XML::Parser::Expat compiles into Expat.dll.
10616b2c1e49SXin LI            #347  Windows: Only define _CRT_RAND_S if not defined
10626b2c1e49SXin LI                  Version info bumped from 7:10:6 to 7:11:6
10636b2c1e49SXin LI
10646b2c1e49SXin LI        Special thanks to:
10656b2c1e49SXin LI            Ben Wagner
10666b2c1e49SXin LI
1067cc68614dSXin LIRelease 2.2.8 Fri September 13 2019
10686b2c1e49SXin LI        Security fixes:
10696b2c1e49SXin LI       #317 #318  CVE-2019-15903 -- Fix heap overflow triggered by
10706b2c1e49SXin LI                    XML_GetCurrentLineNumber (or XML_GetCurrentColumnNumber),
10716b2c1e49SXin LI                    and deny internal entities closing the doctype;
10726b2c1e49SXin LI                    fixed in commit c20b758c332d9a13afbbb276d30db1d183a85d43
10736b2c1e49SXin LI
10746b2c1e49SXin LI        Bug fixes:
10756b2c1e49SXin LI            #240  Fix cases where XML_StopParser did not have any effect
10766b2c1e49SXin LI                    when called from inside of an end element handler
10776b2c1e49SXin LI            #341  xmlwf: Fix exit code for operation without "-d DIRECTORY";
10786b2c1e49SXin LI                    previously, only "-d DIRECTORY" would give you a proper
10796b2c1e49SXin LI                    exit code:
10806b2c1e49SXin LI                      # xmlwf -d . <<<'<not well-formed>' 2>/dev/null ; echo $?
10816b2c1e49SXin LI                      2
10826b2c1e49SXin LI                      # xmlwf <<<'<not well-formed>' 2>/dev/null ; echo $?
10836b2c1e49SXin LI                      0
10846b2c1e49SXin LI                    Now both cases return exit code 2.
10856b2c1e49SXin LI
10866b2c1e49SXin LI        Other changes:
10876b2c1e49SXin LI       #299 #302  Windows: Replace LoadLibrary hack to access
10886b2c1e49SXin LI                    unofficial API function SystemFunction036 (RtlGenRandom)
10896b2c1e49SXin LI                    by using official API function rand_s (needs WinXP+)
10906b2c1e49SXin LI            #325  Windows: Drop support for Visual Studio <=7.1/2003
10916b2c1e49SXin LI                    and document supported compilers in README.md
10926b2c1e49SXin LI            #286  Windows: Remove COM code from xmlwf; in case it turns
10936b2c1e49SXin LI                    out needed later, there will be a dedicated repository
10946b2c1e49SXin LI                    below https://github.com/libexpat/ for that code
10956b2c1e49SXin LI            #322  Windows: Remove explicit MSVC solution and project files.
10966b2c1e49SXin LI                    You can generate Visual Studio solution files through
10976b2c1e49SXin LI                    CMake, e.g.: cmake -G"Visual Studio 15 2017" .
10986b2c1e49SXin LI            #338  xmlwf: Make "xmlwf -h" help output more friendly
10996b2c1e49SXin LI            #339  examples: Improve elements.c
11006b2c1e49SXin LI       #244 #264  Autotools: Add argument --enable-xml-attr-info
11016b2c1e49SXin LI       #239 #301  Autotools: Add arguments
11026b2c1e49SXin LI                    --with-getrandom
11036b2c1e49SXin LI                    --without-getrandom
11046b2c1e49SXin LI                    --with-sys-getrandom
11056b2c1e49SXin LI                    --without-sys-getrandom
11066b2c1e49SXin LI       #312 #343  Autotools: Fix linking issues with "./configure LD=clang"
11076b2c1e49SXin LI                  Autotools: Fix "make run-xmltest" for out-of-source builds
11086b2c1e49SXin LI       #329 #336  CMake: Pull all options from Expat <=2.2.7 into namespace
11096b2c1e49SXin LI                    prefix EXPAT_ with the exception of DOCBOOK_TO_MAN:
11106b2c1e49SXin LI                    - BUILD_doc            -> EXPAT_BUILD_DOCS (plural)
11116b2c1e49SXin LI                    - BUILD_examples       -> EXPAT_BUILD_EXAMPLES
11126b2c1e49SXin LI                    - BUILD_shared         -> EXPAT_SHARED_LIBS
11136b2c1e49SXin LI                    - BUILD_tests          -> EXPAT_BUILD_TESTS
11146b2c1e49SXin LI                    - BUILD_tools          -> EXPAT_BUILD_TOOLS
11156b2c1e49SXin LI                    - DOCBOOK_TO_MAN       -> DOCBOOK_TO_MAN (unchanged)
11166b2c1e49SXin LI                    - INSTALL              -> EXPAT_ENABLE_INSTALL
11176b2c1e49SXin LI                    - MSVC_USE_STATIC_CRT  -> EXPAT_MSVC_STATIC_CRT
11186b2c1e49SXin LI                    - USE_libbsd           -> EXPAT_WITH_LIBBSD
11196b2c1e49SXin LI                    - WARNINGS_AS_ERRORS   -> EXPAT_WARNINGS_AS_ERRORS
11206b2c1e49SXin LI                    - XML_CONTEXT_BYTES    -> EXPAT_CONTEXT_BYTES
11216b2c1e49SXin LI                    - XML_DEV_URANDOM      -> EXPAT_DEV_URANDOM
11226b2c1e49SXin LI                    - XML_DTD              -> EXPAT_DTD
11236b2c1e49SXin LI                    - XML_NS               -> EXPAT_NS
11246b2c1e49SXin LI                    - XML_UNICODE          -> EXPAT_CHAR_TYPE=ushort (!)
11256b2c1e49SXin LI                    - XML_UNICODE_WCHAR_T  -> EXPAT_CHAR_TYPE=wchar_t (!)
11266b2c1e49SXin LI       #244 #264  CMake: Add argument -DEXPAT_ATTR_INFO=(ON|OFF),
11276b2c1e49SXin LI                    default OFF
11286b2c1e49SXin LI            #326  CMake: Add argument -DEXPAT_LARGE_SIZE=(ON|OFF),
11296b2c1e49SXin LI                    default OFF
11306b2c1e49SXin LI            #328  CMake: Add argument -DEXPAT_MIN_SIZE=(ON|OFF),
11316b2c1e49SXin LI                    default OFF
11326b2c1e49SXin LI       #239 #277  CMake: Add arguments
11336b2c1e49SXin LI                    -DEXPAT_WITH_GETRANDOM=(ON|OFF|AUTO), default AUTO
11346b2c1e49SXin LI                    -DEXPAT_WITH_SYS_GETRANDOM=(ON|OFF|AUTO), default AUTO
11356b2c1e49SXin LI            #326  CMake: Install expat_config.h to include directory
11366b2c1e49SXin LI            #326  CMake: Generate and install configuration files for
11376b2c1e49SXin LI                    future find_package(expat [..] CONFIG [..])
11386b2c1e49SXin LI                  CMake: Now produces a summary of applied configuration
11396b2c1e49SXin LI                  CMake: Require C++ compiler only when tests are enabled
11406b2c1e49SXin LI            #330  CMake: Fix compilation for 16bit character types,
11416b2c1e49SXin LI                    i.e. ex -DXML_UNICODE=ON (and ex -DXML_UNICODE_WCHAR_T=ON)
11426b2c1e49SXin LI            #265  CMake: Fix linking with MinGW
11436b2c1e49SXin LI            #330  CMake: Add full support for MinGW; to enable, use
11446b2c1e49SXin LI                    -DCMAKE_TOOLCHAIN_FILE=[expat]/cmake/mingw-toolchain.cmake
11456b2c1e49SXin LI            #330  CMake: Port "make run-xmltest" from GNU Autotools to CMake
11466b2c1e49SXin LI            #316  CMake: Windows: Make binary postfix match MSVC
11476b2c1e49SXin LI                    Old: expat[d].lib
11486b2c1e49SXin LI                    New: expat[w][d][MD|MT].lib
11496b2c1e49SXin LI                  CMake: Migrate files from Windows to Unix line endings
11506b2c1e49SXin LI            #308  CMake: Integrate OSS-Fuzz fuzzers, option
11516b2c1e49SXin LI                    -DEXPAT_BUILD_FUZZERS=(ON|OFF), default OFF
11526b2c1e49SXin LI             #14  Drop an OpenVMS support leftover
11536b2c1e49SXin LI    #235 #268 ..
11546b2c1e49SXin LI    #270 #310 ..
11556b2c1e49SXin LI  #313 #331 #333  Address compiler warnings
11566b2c1e49SXin LI    #282 #283 ..
11576b2c1e49SXin LI       #284 #285  Address cppcheck warnings
11586b2c1e49SXin LI       #294 #295  Address Clang Static Analyzer warnings
11596b2c1e49SXin LI        #24 #293  Mass-apply clang-format 9 (and ensure conformance during CI)
11606b2c1e49SXin LI                  Version info bumped from 7:9:6 to 7:10:6
11616b2c1e49SXin LI
11626b2c1e49SXin LI        Special thanks to:
11636b2c1e49SXin LI            David Loffredo
11646b2c1e49SXin LI            Joonun Jang
11656b2c1e49SXin LI            Kishore Kunche
11666b2c1e49SXin LI            Marco Maggi
11676b2c1e49SXin LI            Mitch Phillips
1168cc68614dSXin LI            Mohammed Khajapasha
11696b2c1e49SXin LI            Rolf Ade
11706b2c1e49SXin LI            xantares
11716b2c1e49SXin LI            Zhongyuan Zhou
11726b2c1e49SXin LI
11736b2c1e49SXin LIRelease 2.2.7 Wed June 19 2019
11746b2c1e49SXin LI        Security fixes:
11756b2c1e49SXin LI       #186 #262  CVE-2018-20843 -- Fix extraction of namespace prefixes from
11766b2c1e49SXin LI                    XML names; XML names with multiple colons could end up in
11776b2c1e49SXin LI                    the wrong namespace, and take a high amount of RAM and CPU
11786b2c1e49SXin LI                    resources while processing, opening the door to
11796b2c1e49SXin LI                    use for denial-of-service attacks
11806b2c1e49SXin LI
11816b2c1e49SXin LI        Other changes:
11826b2c1e49SXin LI       #195 #197  Autotools/CMake: Utilize -fvisibility=hidden to stop
11836b2c1e49SXin LI                    exporting non-API symbols
11846b2c1e49SXin LI            #227  Autotools: Add --without-examples and --without-tests
11856b2c1e49SXin LI            #228  Autotools: Modernize configure.ac
11866b2c1e49SXin LI       #245 #246  Autotools: Fix check for -fvisibility=hidden for Clang
11876b2c1e49SXin LI       #247 #248  Autotools: Fix compilation for lack of docbook2x-man
11886b2c1e49SXin LI       #236 #258  Autotools: Produce .tar.{gz,lz,xz} release archives
11896b2c1e49SXin LI            #212  CMake: Make libdir of pkgconfig expat.pc support multilib
11906b2c1e49SXin LI       #158 #263  CMake: Build man page in PROJECT_BINARY_DIR not _SOURCE_DIR
11916b2c1e49SXin LI            #219  Remove fallback to bcopy, assume that memmove(3) exists
11926b2c1e49SXin LI            #257  Use portable "/usr/bin/env bash" shebang (e.g. for OpenBSD)
11936b2c1e49SXin LI            #243  Windows: Fix syntax of .def module definition files
11946b2c1e49SXin LI                  Version info bumped from 7:8:6 to 7:9:6
11956b2c1e49SXin LI
11966b2c1e49SXin LI        Special thanks to:
11976b2c1e49SXin LI            Benjamin Peterson
11986b2c1e49SXin LI            Caolán McNamara
11996b2c1e49SXin LI            Hanno Böck
12006b2c1e49SXin LI            KangLin
12016b2c1e49SXin LI            Kishore Kunche
12026b2c1e49SXin LI            Marco Maggi
12036b2c1e49SXin LI            Rhodri James
12046b2c1e49SXin LI            Sebastian Dröge
12056b2c1e49SXin LI            userwithuid
12066b2c1e49SXin LI            Yury Gribov
12076b2c1e49SXin LI
12080a48773fSEric van GyzenRelease 2.2.6 Sun August 12 2018
12090a48773fSEric van Gyzen        Bug fixes:
12100a48773fSEric van Gyzen       #170 #206  Avoid doing arithmetic with NULL pointers in XML_GetBuffer
12110a48773fSEric van Gyzen       #204 #205  Fix 2.2.5 regression with suspend-resume while parsing
12120a48773fSEric van Gyzen                    a document like '<root/>'
12130a48773fSEric van Gyzen
12140a48773fSEric van Gyzen        Other changes:
12150a48773fSEric van Gyzen       #165 #168  Autotools: Fix docbook-related configure syntax error
12160a48773fSEric van Gyzen            #166  Autotools: Avoid grep option `-q` for Solaris
12170a48773fSEric van Gyzen            #167  Autotools: Support
12180a48773fSEric van Gyzen                    ./configure DOCBOOK_TO_MAN="xmlto man --skip-validation"
12190a48773fSEric van Gyzen       #159 #167  Autotools: Support DOCBOOK_TO_MAN command which produces
12200a48773fSEric van Gyzen                    xmlwf.1 rather than XMLWF.1; also covers case insensitive
12210a48773fSEric van Gyzen                    file systems
12220a48773fSEric van Gyzen            #181  Autotools: Drop -rpath option passed to libtool
12230a48773fSEric van Gyzen            #188  Autotools: Detect and deny SGML docbook2man as ours is XML
12240a48773fSEric van Gyzen            #188  Autotools/CMake: Support command db2x_docbook2man as well
12250a48773fSEric van Gyzen            #174  CMake: Introduce option WARNINGS_AS_ERRORS, defaults to OFF
12260a48773fSEric van Gyzen       #184 #185  CMake: Introduce option MSVC_USE_STATIC_CRT, defaults to OFF
12270a48773fSEric van Gyzen       #207 #208  CMake: Introduce option XML_UNICODE and XML_UNICODE_WCHAR_T,
12280a48773fSEric van Gyzen                    both defaulting to OFF
12290a48773fSEric van Gyzen            #175  CMake: Prefer check_symbol_exists over check_function_exists
12300a48773fSEric van Gyzen            #176  CMake: Create the same pkg-config file as with GNU Autotools
12310a48773fSEric van Gyzen       #178 #179  CMake: Use GNUInstallDirs module to set proper defaults for
12320a48773fSEric van Gyzen                    install directories
12330a48773fSEric van Gyzen            #208  CMake: Utilize expat_config.h.cmake for XML_DEV_URANDOM
12340a48773fSEric van Gyzen            #180  Windows: Fix compilation of test suite for Visual Studio 2008
12350a48773fSEric van Gyzen  #131 #173 #202  Address compiler warnings
12360a48773fSEric van Gyzen  #187 #190 #200  Fix miscellaneous typos
12370a48773fSEric van Gyzen                  Version info bumped from 7:7:6 to 7:8:6
12380a48773fSEric van Gyzen
12390a48773fSEric van Gyzen        Special thanks to:
12400a48773fSEric van Gyzen            Anton Maklakov
12410a48773fSEric van Gyzen            Benjamin Peterson
12420a48773fSEric van Gyzen            Brad King
12430a48773fSEric van Gyzen            Franek Korta
12440a48773fSEric van Gyzen            Frank Rast
12450a48773fSEric van Gyzen            Joe Orton
12460a48773fSEric van Gyzen            luzpaz
12470a48773fSEric van Gyzen            Pedro Vicente
12480a48773fSEric van Gyzen            Rainer Jung
12490a48773fSEric van Gyzen            Rhodri James
12500a48773fSEric van Gyzen            Rolf Ade
12510a48773fSEric van Gyzen            Rolf Eike Beer
12520a48773fSEric van Gyzen            Thomas Beutlich
12530a48773fSEric van Gyzen            Tomasz Kłoczko
12540a48773fSEric van Gyzen
12550a48773fSEric van GyzenRelease 2.2.5 Tue October 31 2017
12560a48773fSEric van Gyzen        Bug fixes:
12570a48773fSEric van Gyzen              #8  If the parser runs out of memory, make sure its internal
12580a48773fSEric van Gyzen                    state reflects the memory it actually has, not the memory
12590a48773fSEric van Gyzen                    it wanted to have.
12600a48773fSEric van Gyzen             #11  The default handler wasn't being called when it should for
12610a48773fSEric van Gyzen                    a SYSTEM or PUBLIC doctype if an entity declaration handler
12620a48773fSEric van Gyzen                    was registered.
12630a48773fSEric van Gyzen       #137 #138  Fix a case of mistakenly reported parsing success where
12640a48773fSEric van Gyzen                    XML_StopParser was called from an element handler
12650a48773fSEric van Gyzen            #162  Function XML_ErrorString was returning NULL rather than
12660a48773fSEric van Gyzen                    a message for code XML_ERROR_INVALID_ARGUMENT
12670a48773fSEric van Gyzen                    introduced with release 2.2.1
12680a48773fSEric van Gyzen
12690a48773fSEric van Gyzen        Other changes:
12700a48773fSEric van Gyzen            #106  xmlwf: Add argument -N adding notation declarations
12710a48773fSEric van Gyzen        #75 #106  Test suite: Resolve expected failure cases where xmlwf
12720a48773fSEric van Gyzen                    output was incomplete
12730a48773fSEric van Gyzen            #127  Windows: Fix test suite compilation
12740a48773fSEric van Gyzen       #126 #127  Windows: Fix compilation for Visual Studio 2012
12750a48773fSEric van Gyzen                  Windows: Upgrade shipped project files to Visual Studio 2017
12760a48773fSEric van Gyzen        #33 #132  tests: Mass-fix compilation for XML_UNICODE_WCHAR_T
12770a48773fSEric van Gyzen            #129  examples: Fix compilation for XML_UNICODE_WCHAR_T
12780a48773fSEric van Gyzen            #130  benchmark: Fix compilation for XML_UNICODE_WCHAR_T
12790a48773fSEric van Gyzen            #144  xmlwf: Fix compilation for XML_UNICODE_WCHAR_T; still needs
12800a48773fSEric van Gyzen                    Windows or MinGW for 2-byte wchar_t
12810a48773fSEric van Gyzen              #9  Address two Clang Static Analyzer false positives
12820a48773fSEric van Gyzen             #59  Resolve troublesome macros hiding parser struct membership
12830a48773fSEric van Gyzen                    and dereferencing that pointer
12840a48773fSEric van Gyzen              #6  Resolve superfluous internal malloc/realloc switch
12850a48773fSEric van Gyzen       #153 #155  Improve docbook2x-man detection
12860a48773fSEric van Gyzen            #160  Undefine NDEBUG in the test suite (rather than rejecting it)
12870a48773fSEric van Gyzen            #161  Address compiler warnings
12880a48773fSEric van Gyzen                  Version info bumped from 7:6:6 to 7:7:6
12890a48773fSEric van Gyzen
12900a48773fSEric van Gyzen        Special thanks to:
12910a48773fSEric van Gyzen            Benbuck Nason
12920a48773fSEric van Gyzen            Hans Wennborg
12930a48773fSEric van Gyzen            José Gutiérrez de la Concha
12940a48773fSEric van Gyzen            Pedro Monreal Gonzalez
12950a48773fSEric van Gyzen            Rhodri James
12960a48773fSEric van Gyzen            Rolf Ade
12970a48773fSEric van Gyzen            Stephen Groat
12980a48773fSEric van Gyzen                 and
12990a48773fSEric van Gyzen            Core Infrastructure Initiative
13000a48773fSEric van Gyzen
13010a48773fSEric van GyzenRelease 2.2.4 Sat August 19 2017
13020a48773fSEric van Gyzen        Bug fixes:
13030a48773fSEric van Gyzen            #115  Fix copying of partial characters for UTF-8 input
13040a48773fSEric van Gyzen
13050a48773fSEric van Gyzen        Other changes:
13060a48773fSEric van Gyzen            #109  Fix "make check" for non-x86 architectures that default
13070a48773fSEric van Gyzen                    to unsigned type char (-128..127 rather than 0..255)
13080a48773fSEric van Gyzen            #109  coverage.sh: Cover -funsigned-char
13090a48773fSEric van Gyzen                  Autotools: Introduce --without-xmlwf argument
13100a48773fSEric van Gyzen             #65  Autotools: Replace handwritten Makefile with GNU Automake
13110a48773fSEric van Gyzen             #43  CMake: Auto-detect high quality entropy extractors, add new
13120a48773fSEric van Gyzen                    option USE_libbsd=ON to use arc4random_buf of libbsd
13130a48773fSEric van Gyzen             #74  CMake: Add -fno-strict-aliasing only where supported
13140a48773fSEric van Gyzen            #114  CMake: Always honor manually set BUILD_* options
13150a48773fSEric van Gyzen            #114  CMake: Compile man page if docbook2x-man is available, only
13160a48773fSEric van Gyzen            #117  Include file tests/xmltest.log.expected in source tarball
13170a48773fSEric van Gyzen                    (required for "make run-xmltest")
13180a48773fSEric van Gyzen            #117  Include (existing) Visual Studio 2013 files in source tarball
13190a48773fSEric van Gyzen                  Improve test suite error output
13200a48773fSEric van Gyzen            #111  Fix some typos in documentation
13210a48773fSEric van Gyzen                  Version info bumped from 7:5:6 to 7:6:6
13220a48773fSEric van Gyzen
13230a48773fSEric van Gyzen        Special thanks to:
13240a48773fSEric van Gyzen            Jakub Wilk
13250a48773fSEric van Gyzen            Joe Orton
13260a48773fSEric van Gyzen            Lin Tian
13270a48773fSEric van Gyzen            Rolf Eike Beer
13280a48773fSEric van Gyzen
13290a48773fSEric van GyzenRelease 2.2.3 Wed August 2 2017
13300a48773fSEric van Gyzen        Security fixes:
13310a48773fSEric van Gyzen             #82  CVE-2017-11742 -- Windows: Fix DLL hijacking vulnerability
13320a48773fSEric van Gyzen                    using Steve Holme's LoadLibrary wrapper for/of cURL
13330a48773fSEric van Gyzen
13340a48773fSEric van Gyzen        Bug fixes:
13350a48773fSEric van Gyzen             #85  Fix a dangling pointer issue related to realloc
13360a48773fSEric van Gyzen
13370a48773fSEric van Gyzen        Other changes:
13380a48773fSEric van Gyzen                  Increase code coverage
13390a48773fSEric van Gyzen             #91  Linux: Allow getrandom to fail if nonblocking pool has not
13400a48773fSEric van Gyzen                    yet been initialized and read /dev/urandom then, instead.
13410a48773fSEric van Gyzen                    This is in line with what recent Python does.
13420a48773fSEric van Gyzen             #81  Pre-10.7/Lion macOS: Support entropy from arc4random
13430a48773fSEric van Gyzen             #86  Check that a UTF-16 encoding in an XML declaration has the
13440a48773fSEric van Gyzen                    right endianness
13450a48773fSEric van Gyzen        #4 #5 #7  Recover correctly when some reallocations fail
13460a48773fSEric van Gyzen                  Repair "./configure && make" for systems without any
13470a48773fSEric van Gyzen                    provider of high quality entropy
13480a48773fSEric van Gyzen                    and try reading /dev/urandom on those
13490a48773fSEric van Gyzen                  Ensure that user-defined character encodings have converter
13500a48773fSEric van Gyzen                    functions when they are needed
13510a48773fSEric van Gyzen                  Fix mis-leading description of argument -c in xmlwf.1
13520a48773fSEric van Gyzen                  Rely on macro HAVE_ARC4RANDOM_BUF (rather than __CloudABI__)
13530a48773fSEric van Gyzen                    for CloudABI
13540a48773fSEric van Gyzen            #100  Fix use of SIPHASH_MAIN in siphash.h
13550a48773fSEric van Gyzen             #23  Test suite: Fix memory leaks
13560a48773fSEric van Gyzen                  Version info bumped from 7:4:6 to 7:5:6
13570a48773fSEric van Gyzen
13580a48773fSEric van Gyzen        Special thanks to:
13590a48773fSEric van Gyzen            Chanho Park
13600a48773fSEric van Gyzen            Joe Orton
13610a48773fSEric van Gyzen            Pascal Cuoq
13620a48773fSEric van Gyzen            Rhodri James
13630a48773fSEric van Gyzen            Simon McVittie
13640a48773fSEric van Gyzen            Vadim Zeitlin
13650a48773fSEric van Gyzen            Viktor Szakats
13660a48773fSEric van Gyzen                 and
13670a48773fSEric van Gyzen            Core Infrastructure Initiative
13680a48773fSEric van Gyzen
13690a48773fSEric van GyzenRelease 2.2.2 Wed July 12 2017
13700a48773fSEric van Gyzen        Security fixes:
13710a48773fSEric van Gyzen             #43  Protect against compilation without any source of high
13720a48773fSEric van Gyzen                    quality entropy enabled, e.g. with CMake build system;
13730a48773fSEric van Gyzen                    commit ff0207e6076e9828e536b8d9cd45c9c92069b895
13740a48773fSEric van Gyzen             #60  Windows with _UNICODE:
13750a48773fSEric van Gyzen                    Unintended use of LoadLibraryW with a non-wide string
13760a48773fSEric van Gyzen                    resulted in failure to load advapi32.dll and degradation
13770a48773fSEric van Gyzen                    in quality of used entropy when compiled with _UNICODE for
13780a48773fSEric van Gyzen                    Windows; you can launch existing binaries with
13790a48773fSEric van Gyzen                    EXPAT_ENTROPY_DEBUG=1 in the environment to inspect the
13800a48773fSEric van Gyzen                    quality of entropy used during runtime; commits
13810a48773fSEric van Gyzen                    * 95b95032f907ef1cd17ee7a9a1768010a825d61d
13820a48773fSEric van Gyzen                    * 73a5a2e9c081f49f2d775cf7ced864158b68dc80
13830a48773fSEric van Gyzen   [MOX-006]      Fix non-NULL parser parameter validation in XML_Parse;
13840a48773fSEric van Gyzen                    resulted in NULL dereference, previously;
13850a48773fSEric van Gyzen                    commit ac256dafdffc9622ab0dc2c62fcecb0dfcfa71fe
13860a48773fSEric van Gyzen
13870a48773fSEric van Gyzen        Bug fixes:
13880a48773fSEric van Gyzen             #69  Fix improper use of unsigned long long integer literals
13890a48773fSEric van Gyzen
13900a48773fSEric van Gyzen        Other changes:
13910a48773fSEric van Gyzen             #73  Start requiring a C99 compiler
13920a48773fSEric van Gyzen             #49  Fix "==" Bashism in configure script
13930a48773fSEric van Gyzen             #50  Fix too eager getrandom detection for Debian GNU/kFreeBSD
13940a48773fSEric van Gyzen             #52    and macOS
13950a48773fSEric van Gyzen             #51  Address lack of stdint.h in Visual Studio 2003 to 2008
13960a48773fSEric van Gyzen             #58  Address compile warnings
13970a48773fSEric van Gyzen             #68  Fix "./buildconf.sh && ./configure" for some versions
13980a48773fSEric van Gyzen                    of Dash for /bin/sh
13990a48773fSEric van Gyzen             #72  CMake: Ease use of Expat in context of a parent project
14000a48773fSEric van Gyzen                    with multiple CMakeLists.txt files
14010a48773fSEric van Gyzen             #72  CMake: Resolve mistaken executable permissions
14020a48773fSEric van Gyzen             #76  Address compile warning with -DNDEBUG (not recommended!)
14030a48773fSEric van Gyzen             #77  Address compile warning about macro redefinition
14040a48773fSEric van Gyzen
14050a48773fSEric van Gyzen        Special thanks to:
14060a48773fSEric van Gyzen            Alexander Bluhm
14070a48773fSEric van Gyzen            Ben Boeckel
14080a48773fSEric van Gyzen            Cătălin Răceanu
14090a48773fSEric van Gyzen            Kerin Millar
14100a48773fSEric van Gyzen            László Böszörményi
14110a48773fSEric van Gyzen            S. P. Zeidler
14120a48773fSEric van Gyzen            Segev Finer
14130a48773fSEric van Gyzen            Václav Slavík
14140a48773fSEric van Gyzen            Victor Stinner
14150a48773fSEric van Gyzen            Viktor Szakats
14160a48773fSEric van Gyzen                 and
14170a48773fSEric van Gyzen            Radically Open Security
14180a48773fSEric van Gyzen
14190a48773fSEric van GyzenRelease 2.2.1 Sat June 17 2017
14200a48773fSEric van Gyzen        Security fixes:
14210a48773fSEric van Gyzen                  CVE-2017-9233 -- External entity infinite loop DoS
14220a48773fSEric van Gyzen                    Details: https://libexpat.github.io/doc/cve-2017-9233/
14230a48773fSEric van Gyzen                    Commit c4bf96bb51dd2a1b0e185374362ee136fe2c9d7f
14240a48773fSEric van Gyzen   [MOX-002]      CVE-2016-9063 -- Detect integer overflow; commit
14250a48773fSEric van Gyzen                    d4f735b88d9932bd5039df2335eefdd0723dbe20
14260a48773fSEric van Gyzen                    (Fixed version of existing downstream patches!)
14270a48773fSEric van Gyzen   (SF.net) #539  Fix regression from fix to CVE-2016-0718 cutting off
14280a48773fSEric van Gyzen                    longer tag names; commits
14290a48773fSEric van Gyzen                    * 896b6c1fd3b842f377d1b62135dccf0a579cf65d
14300a48773fSEric van Gyzen                    * af507cef2c93cb8d40062a0abe43a4f4e9158fb2
14310a48773fSEric van Gyzen             #16    * 0dbbf43fdb20f593ddf4fa1ff67288000dd4a7fd
14320a48773fSEric van Gyzen             #25  More integer overflow detection (function poolGrow); commits
14330a48773fSEric van Gyzen                    * 810b74e4703dcfdd8f404e3cb177d44684775143
14340a48773fSEric van Gyzen                    * 44178553f3539ce69d34abee77a05e879a7982ac
14350a48773fSEric van Gyzen   [MOX-002]      Detect overflow from len=INT_MAX call to XML_Parse; commits
14360a48773fSEric van Gyzen                    * 4be2cb5afcc018d996f34bbbce6374b7befad47f
14370a48773fSEric van Gyzen                    * 7e5b71b748491b6e459e5c9a1d090820f94544d8
14380a48773fSEric van Gyzen   [MOX-005] #30  Use high quality entropy for hash initialization:
14390a48773fSEric van Gyzen                    * arc4random_buf on BSD, systems with libbsd
14400a48773fSEric van Gyzen                      (when configured with --with-libbsd), CloudABI
14410a48773fSEric van Gyzen                    * RtlGenRandom on Windows XP / Server 2003 and later
14420a48773fSEric van Gyzen                    * getrandom on Linux 3.17+
14430a48773fSEric van Gyzen                    In a way, that's still part of CVE-2016-5300.
14440a48773fSEric van Gyzen                    https://github.com/libexpat/libexpat/pull/30/commits
14450a48773fSEric van Gyzen   [MOX-005]      For the low quality entropy extraction fallback code,
14460a48773fSEric van Gyzen                    the parser instance address can no longer leak, commit
14470a48773fSEric van Gyzen                    04ad658bd3079dd15cb60fc67087900f0ff4b083
14480a48773fSEric van Gyzen   [MOX-003]      Prevent use of uninitialised variable; commit
14490a48773fSEric van Gyzen   [MOX-004]        a4dc944f37b664a3ca7199c624a98ee37babdb4b
14500a48773fSEric van Gyzen                  Add missing parameter validation to public API functions
14510a48773fSEric van Gyzen                    and dedicated error code XML_ERROR_INVALID_ARGUMENT:
14520a48773fSEric van Gyzen   [MOX-006]        * NULL checks; commits
14530a48773fSEric van Gyzen                      * d37f74b2b7149a3a95a680c4c4cd2a451a51d60a (merge/many)
14540a48773fSEric van Gyzen                      * 9ed727064b675b7180c98cb3d4f75efba6966681
14550a48773fSEric van Gyzen                      * 6a747c837c50114dfa413994e07c0ba477be4534
14560a48773fSEric van Gyzen                    * Negative length (XML_Parse); commit
14570a48773fSEric van Gyzen   [MOX-002]          70db8d2538a10f4c022655d6895e4c3e78692e7f
14580a48773fSEric van Gyzen   [MOX-001] #35  Change hash algorithm to William Ahern's version of SipHash
14590a48773fSEric van Gyzen                    to go further with fixing CVE-2012-0876.
14600a48773fSEric van Gyzen                    https://github.com/libexpat/libexpat/pull/39/commits
14610a48773fSEric van Gyzen
14620a48773fSEric van Gyzen        Bug fixes:
14630a48773fSEric van Gyzen             #32  Fix sharing of hash salt across parsers;
14640a48773fSEric van Gyzen                    relevant where XML_ExternalEntityParserCreate is called
14650a48773fSEric van Gyzen                    prior to XML_Parse, in particular (e.g. FBReader)
14660a48773fSEric van Gyzen             #28  xmlwf: Auto-disable use of memory-mapping (and parsing
14670a48773fSEric van Gyzen                    as a single chunk) for files larger than ~1 GB (2^30 bytes)
14680a48773fSEric van Gyzen                    rather than failing with error "out of memory"
14690a48773fSEric van Gyzen              #3  Fix double free after malloc failure in DTD code; commit
14700a48773fSEric van Gyzen                    7ae9c3d3af433cd4defe95234eae7dc8ed15637f
14710a48773fSEric van Gyzen             #17  Fix memory leak on parser error for unbound XML attribute
14720a48773fSEric van Gyzen                    prefix with new namespaces defined in the same tag;
14730a48773fSEric van Gyzen                    found by Google's OSS-Fuzz; commits
14740a48773fSEric van Gyzen                    * 16f87daae5a16132e479e4f71862128c7a915c73
14750a48773fSEric van Gyzen                    * b47dbc9745932c160893d433220e462bd605f8cd
14760a48773fSEric van Gyzen                  xmlwf on Windows: Add missing calls to CloseHandle
14770a48773fSEric van Gyzen
14780a48773fSEric van Gyzen        New features:
14790a48773fSEric van Gyzen             #30  Introduced environment switch EXPAT_ENTROPY_DEBUG=1
14800a48773fSEric van Gyzen                    for runtime debugging of entropy extraction
14810a48773fSEric van Gyzen
14820a48773fSEric van Gyzen        Other changes:
14830a48773fSEric van Gyzen                  Increase code coverage
14840a48773fSEric van Gyzen             #33  Reject use of XML_UNICODE_WCHAR_T with sizeof(wchar_t) != 2;
14850a48773fSEric van Gyzen                    XML_UNICODE_WCHAR_T was never meant to be used outside
14860a48773fSEric van Gyzen                    of Windows; 4-byte wchar_t is common on Linux
14870a48773fSEric van Gyzen   (SF.net) #538  Start using -fno-strict-aliasing
14880a48773fSEric van Gyzen   (SF.net) #540  Support compilation against cloudlibc of CloudABI
14890a48773fSEric van Gyzen                  Allow MinGW cross-compilation
14900a48773fSEric van Gyzen   (SF.net) #534  CMake: Introduce option "BUILD_doc" (enabled by default)
14910a48773fSEric van Gyzen                    to bypass compilation of the xmlwf.1 man page
14920a48773fSEric van Gyzen   (SF.net)  pr2  CMake: Introduce option "INSTALL" (enabled by default)
14930a48773fSEric van Gyzen                    to bypass installation of expat files
14940a48773fSEric van Gyzen                  CMake: Fix ninja support
14950a48773fSEric van Gyzen                  Autotools: Add parameters --enable-xml-context [COUNT]
14960a48773fSEric van Gyzen                    and --disable-xml-context; default of context of 1024
14970a48773fSEric van Gyzen                    bytes enabled unchanged
14980a48773fSEric van Gyzen             #14  Drop AmigaOS 4.x code and includes
14990a48773fSEric van Gyzen             #14  Drop ancient build systems:
15000a48773fSEric van Gyzen                    * Borland C++ Builder
15010a48773fSEric van Gyzen                    * OpenVMS
15020a48773fSEric van Gyzen                    * Open Watcom
15030a48773fSEric van Gyzen                    * Visual Studio 6.0
15040a48773fSEric van Gyzen                    * Pre-X Mac OS (MPW Makefile)
15050a48773fSEric van Gyzen                    If you happen to rely on some of these, please get in
15060a48773fSEric van Gyzen                    touch for joining with maintenance.
15070a48773fSEric van Gyzen             #10  Move from WIN32 to _WIN32
15080a48773fSEric van Gyzen             #13  Fix "make run-xmltest" order instability
15090a48773fSEric van Gyzen                  Address compile warnings
15100a48773fSEric van Gyzen                  Bump version info from 7:2:6 to 7:3:6
15110a48773fSEric van Gyzen                  Add AUTHORS file
15120a48773fSEric van Gyzen
15130a48773fSEric van Gyzen        Infrastructure:
15140a48773fSEric van Gyzen              #1  Migrate from SourceForge to GitHub (except downloads):
15150a48773fSEric van Gyzen                    https://github.com/libexpat/
15160a48773fSEric van Gyzen              #1  Re-create http://libexpat.org/ project website
15170a48773fSEric van Gyzen                  Start utilizing Travis CI
15180a48773fSEric van Gyzen
15190a48773fSEric van Gyzen        Special thanks to:
15200a48773fSEric van Gyzen            Andy Wang
15210a48773fSEric van Gyzen            Don Lewis
15220a48773fSEric van Gyzen            Ed Schouten
15230a48773fSEric van Gyzen            Karl Waclawek
15240a48773fSEric van Gyzen            Pascal Cuoq
15250a48773fSEric van Gyzen            Rhodri James
15260a48773fSEric van Gyzen            Sergei Nikulov
15270a48773fSEric van Gyzen            Tobias Taschner
15280a48773fSEric van Gyzen            Viktor Szakats
15290a48773fSEric van Gyzen                 and
15300a48773fSEric van Gyzen            Core Infrastructure Initiative
15310a48773fSEric van Gyzen            Mozilla Foundation (MOSS Track 3: Secure Open Source)
15320a48773fSEric van Gyzen            Radically Open Security
15330a48773fSEric van Gyzen
1534be8aff81SXin LIRelease 2.2.0 Tue June 21 2016
1535be8aff81SXin LI        Security fixes:
1536be8aff81SXin LI            #537  CVE-2016-0718 -- Fix crash on malformed input
1537be8aff81SXin LI                  CVE-2016-4472 -- Improve insufficient fix to CVE-2015-1283 /
1538be8aff81SXin LI                                   CVE-2015-2716 introduced with Expat 2.1.1
1539be8aff81SXin LI            #499  CVE-2016-5300 -- Use more entropy for hash initialization
1540be8aff81SXin LI                                   than the original fix to CVE-2012-0876
1541be8aff81SXin LI            #519  CVE-2012-6702 -- Resolve troublesome internal call to srand
1542be8aff81SXin LI                                   that was introduced with Expat 2.1.0
1543be8aff81SXin LI                                   when addressing CVE-2012-0876 (issue #496)
1544be8aff81SXin LI
1545be8aff81SXin LI        Bug fixes:
1546be8aff81SXin LI                  Fix uninitialized reads of size 1
1547be8aff81SXin LI                    (e.g. in little2_updatePosition)
1548be8aff81SXin LI                  Fix detection of UTF-8 character boundaries
1549be8aff81SXin LI
1550be8aff81SXin LI        Other changes:
1551be8aff81SXin LI            #532  Fix compilation for Visual Studio 2010 (keyword "C99")
1552be8aff81SXin LI                  Autotools: Resolve use of "$<" to better support bmake
1553be8aff81SXin LI                  Autotools: Add QA script "qa.sh" (and make target "qa")
1554be8aff81SXin LI                  Autotools: Respect CXXFLAGS if given
1555be8aff81SXin LI                  Autotools: Fix "make run-xmltest"
1556be8aff81SXin LI                  Autotools: Have "make run-xmltest" check for expected output
1557be8aff81SXin LI             p90  CMake: Fix static build (BUILD_shared=OFF) on Windows
1558be8aff81SXin LI            #536  CMake: Add soversion, support -DNO_SONAME=yes to bypass
1559be8aff81SXin LI            #323  CMake: Add suffix "d" to differentiate debug from release
1560be8aff81SXin LI                  CMake: Define WIN32 with CMake on Windows
1561be8aff81SXin LI                  Annotate memory allocators for GCC
1562be8aff81SXin LI                  Address all currently known compile warnings
1563be8aff81SXin LI                  Make sure that API symbols remain visible despite
1564be8aff81SXin LI                    -fvisibility=hidden
1565be8aff81SXin LI                  Remove executable flag from source files
1566be8aff81SXin LI                  Resolve COMPILED_FROM_DSP in favor of WIN32
1567be8aff81SXin LI
1568be8aff81SXin LI        Special thanks to:
1569be8aff81SXin LI            Björn Lindahl
1570be8aff81SXin LI            Christian Heimes
1571be8aff81SXin LI            Cristian Rodríguez
1572be8aff81SXin LI            Daniel Krügler
1573be8aff81SXin LI            Gustavo Grieco
1574be8aff81SXin LI            Karl Waclawek
1575be8aff81SXin LI            László Böszörményi
1576be8aff81SXin LI            Marco Grassi
1577be8aff81SXin LI            Pascal Cuoq
1578be8aff81SXin LI            Sergei Nikulov
1579be8aff81SXin LI            Thomas Beutlich
1580be8aff81SXin LI            Warren Young
1581be8aff81SXin LI            Yann Droneaud
1582be8aff81SXin LI
1583be8aff81SXin LIRelease 2.1.1 Sat March 12 2016
1584be8aff81SXin LI        Security fixes:
1585be8aff81SXin LI            #582: CVE-2015-1283 - Multiple integer overflows in XML_GetBuffer
1586be8aff81SXin LI
1587be8aff81SXin LI        Bug fixes:
1588be8aff81SXin LI            #502: Fix potential null pointer dereference
1589be8aff81SXin LI            #520: Symbol XML_SetHashSalt was not exported
1590be8aff81SXin LI            Output of "xmlwf -h" was incomplete
1591be8aff81SXin LI
1592be8aff81SXin LI        Other changes:
1593be8aff81SXin LI            #503: Document behavior of calling XML_SetHashSalt with salt 0
1594be8aff81SXin LI            Minor improvements to man page xmlwf(1)
1595be8aff81SXin LI            Improvements to the experimental CMake build system
1596be8aff81SXin LI            libtool now invoked with --verbose
1597be8aff81SXin LI
1598e3466a89SXin LIRelease 2.1.0 Sat March 24 2012
15990a48773fSEric van Gyzen        - Security fixes:
16000a48773fSEric van Gyzen          #2958794: CVE-2012-1148 - Memory leak in poolGrow.
16010a48773fSEric van Gyzen          #2895533: CVE-2012-1147 - Resource leak in readfilemap.c.
16020a48773fSEric van Gyzen          #3496608: CVE-2012-0876 - Hash DOS attack.
16030a48773fSEric van Gyzen          #2894085: CVE-2009-3560 - Buffer over-read and crash in big2_toUtf8().
16040a48773fSEric van Gyzen          #1990430: CVE-2009-3720 - Parser crash with special UTF-8 sequences.
1605e3466a89SXin LI        - Bug Fixes:
1606e3466a89SXin LI          #1742315: Harmful XML_ParserCreateNS suggestion.
1607e3466a89SXin LI          #1785430: Expat build fails on linux-amd64 with gcc version>=4.1 -O3.
1608e3466a89SXin LI          #1983953, 2517952, 2517962, 2649838:
1609e3466a89SXin LI                Build modifications using autoreconf instead of buildconf.sh.
1610e3466a89SXin LI          #2815947, #2884086: OBJEXT and EXEEXT support while building.
1611e3466a89SXin LI          #2517938: xmlwf should return non-zero exit status if not well-formed.
1612e3466a89SXin LI          #2517946: Wrong statement about XMLDecl in xmlwf.1 and xmlwf.sgml.
1613e3466a89SXin LI          #2855609: Dangling positionPtr after error.
1614e3466a89SXin LI          #2990652: CMake support.
1615e3466a89SXin LI          #3010819: UNEXPECTED_STATE with a trailing "%" in entity value.
16160a48773fSEric van Gyzen          #3206497: Uninitialized memory returned from XML_Parse.
1617e3466a89SXin LI          #3287849: make check fails on mingw-w64.
1618e3466a89SXin LI        - Patches:
1619e3466a89SXin LI          #1749198: pkg-config support.
1620e3466a89SXin LI          #3010222: Fix for bug #3010819.
1621e3466a89SXin LI          #3312568: CMake support.
1622e3466a89SXin LI          #3446384: Report byte offsets for attr names and values.
1623e3466a89SXin LI        - New Features / API changes:
1624be8aff81SXin LI          Added new API member XML_SetHashSalt() that allows setting an initial
1625e3466a89SXin LI                value (salt) for hash calculations. This is part of the fix for
1626e3466a89SXin LI                bug #3496608 to randomize hash parameters.
1627e3466a89SXin LI          When compiled with XML_ATTR_INFO defined, adds new API member
1628e3466a89SXin LI                XML_GetAttributeInfo() that allows retrieving the byte
1629e3466a89SXin LI                offsets for attribute names and values (patch #3446384).
1630e3466a89SXin LI          Added CMake build system.
1631e3466a89SXin LI                See bug #2990652 and patch #3312568.
1632e3466a89SXin LI          Added run-benchmark target to Makefile.in - relies on testdata module
1633e3466a89SXin LI                present in the same relative location as in the repository.
1634e3466a89SXin LI
1635220ed979SColeman KaneRelease 2.0.1 Tue June 5 2007
1636e3466a89SXin LI        - Fixed bugs #1515266, #1515600: The character data handler's calling
1637220ed979SColeman Kane          of XML_StopParser() was not handled properly; if the parser was
1638220ed979SColeman Kane          stopped and the handler set to NULL, the parser would segfault.
1639220ed979SColeman Kane        - Fixed bug #1690883: Expat failed on EBCDIC systems as it assumed
1640220ed979SColeman Kane          some character constants to be ASCII encoded.
1641220ed979SColeman Kane        - Minor cleanups of the test harness.
1642220ed979SColeman Kane        - Fixed xmlwf bug #1513566: "out of memory" error on file size zero.
1643220ed979SColeman Kane        - Fixed outline.c bug #1543233: missing a final XML_ParserFree() call.
1644220ed979SColeman Kane        - Fixes and improvements for Windows platform:
1645e3466a89SXin LI          bugs #1409451, #1476160, #1548182, #1602769, #1717322.
1646220ed979SColeman Kane        - Build fixes for various platforms:
1647220ed979SColeman Kane          HP-UX, Tru64, Solaris 9: patch #1437840, bug #1196180.
1648220ed979SColeman Kane          All Unix: #1554618 (refreshed config.sub/config.guess).
1649220ed979SColeman Kane                    #1490371, #1613457: support both, DESTDIR and INSTALL_ROOT,
1650220ed979SColeman Kane                    without relying on GNU-Make specific features.
1651220ed979SColeman Kane          #1647805: Patched configure.in to work better with Intel compiler.
1652220ed979SColeman Kane        - Fixes to Makefile.in to have make check work correctly:
1653220ed979SColeman Kane          bugs #1408143, #1535603, #1536684.
1654220ed979SColeman Kane        - Added Open Watcom support: patch #1523242.
1655220ed979SColeman Kane
1656220ed979SColeman KaneRelease 2.0.0 Wed Jan 11 2006
1657220ed979SColeman Kane        - We no longer use the "check" library for C unit testing; we
1658220ed979SColeman Kane          always use the (partial) internal implementation of the API.
1659220ed979SColeman Kane        - Report XML_NS setting via XML_GetFeatureList().
1660220ed979SColeman Kane        - Fixed headers for use from C++.
1661220ed979SColeman Kane        - XML_GetCurrentLineNumber() and  XML_GetCurrentColumnNumber()
1662220ed979SColeman Kane          now return unsigned integers.
1663220ed979SColeman Kane        - Added XML_LARGE_SIZE switch to enable 64-bit integers for
1664220ed979SColeman Kane          byte indexes and line/column numbers.
1665220ed979SColeman Kane        - Updated to use libtool 1.5.22 (the most recent).
1666220ed979SColeman Kane        - Added support for AmigaOS.
1667e3466a89SXin LI        - Some mostly minor bug fixes. SF issues include: #1006708,
1668e3466a89SXin LI          #1021776, #1023646, #1114960, #1156398, #1221160, #1271642.
1669220ed979SColeman Kane
1670220ed979SColeman KaneRelease 1.95.8 Fri Jul 23 2004
1671220ed979SColeman Kane        - Major new feature: suspend/resume.  Handlers can now request
1672220ed979SColeman Kane          that a parse be suspended for later resumption or aborted
1673220ed979SColeman Kane          altogether.  See "Temporarily Stopping Parsing" in the
1674220ed979SColeman Kane          documentation for more details.
1675220ed979SColeman Kane        - Some mostly minor bug fixes, but compilation should no
1676220ed979SColeman Kane          longer generate warnings on most platforms.  SF issues
1677e3466a89SXin LI          include: #827319, #840173, #846309, #888329, #896188, #923913,
1678e3466a89SXin LI          #928113, #961698, #985192.
1679220ed979SColeman Kane
1680220ed979SColeman KaneRelease 1.95.7 Mon Oct 20 2003
1681220ed979SColeman Kane        - Fixed enum XML_Status issue (reported on SourceForge many
1682220ed979SColeman Kane          times), so compilers that are properly picky will be happy.
1683220ed979SColeman Kane        - Introduced an XMLCALL macro to control the calling
1684220ed979SColeman Kane          convention used by the Expat API; this macro should be used
1685220ed979SColeman Kane          to annotate prototypes and definitions of callback
1686220ed979SColeman Kane          implementations in code compiled with a calling convention
1687220ed979SColeman Kane          other than the default convention for the host platform.
1688220ed979SColeman Kane        - Improved ability to build without the configure-generated
1689220ed979SColeman Kane          expat_config.h header.  This is useful for applications
1690220ed979SColeman Kane          which embed Expat rather than linking in the library.
1691e3466a89SXin LI        - Fixed a variety of bugs: see SF issues #458907, #609603,
1692e3466a89SXin LI          #676844, #679754, #692878, #692964, #695401, #699323, #699487,
1693e3466a89SXin LI          #820946.
1694220ed979SColeman Kane        - Improved hash table lookups.
1695220ed979SColeman Kane        - Added more regression tests and improved documentation.
1696220ed979SColeman Kane
1697220ed979SColeman KaneRelease 1.95.6 Tue Jan 28 2003
1698220ed979SColeman Kane        - Added XML_FreeContentModel().
1699220ed979SColeman Kane        - Added XML_MemMalloc(), XML_MemRealloc(), XML_MemFree().
1700e3466a89SXin LI        - Fixed a variety of bugs: see SF issues #615606, #616863,
1701e3466a89SXin LI          #618199, #653180, #673791.
1702220ed979SColeman Kane        - Enhanced the regression test suite.
1703e3466a89SXin LI        - Man page improvements: includes SF issue #632146.
1704220ed979SColeman Kane
17055bb6a25fSPoul-Henning KampRelease 1.95.5 Fri Sep 6 2002
17065bb6a25fSPoul-Henning Kamp        - Added XML_UseForeignDTD() for improved SAX2 support.
17075bb6a25fSPoul-Henning Kamp        - Added XML_GetFeatureList().
17085bb6a25fSPoul-Henning Kamp        - Defined XML_Bool type and the values XML_TRUE and XML_FALSE.
17095bb6a25fSPoul-Henning Kamp        - Use an incomplete struct instead of a void* for the parser
17105bb6a25fSPoul-Henning Kamp          (may not retain).
17115bb6a25fSPoul-Henning Kamp        - Fixed UTF-8 decoding bug that caused legal UTF-8 to be rejected.
17125bb6a25fSPoul-Henning Kamp        - Finally fixed bug where default handler would report DTD
17135bb6a25fSPoul-Henning Kamp          events that were already handled by another handler.
1714220ed979SColeman Kane          Initial patch contributed by Darryl Miles.
17155bb6a25fSPoul-Henning Kamp        - Removed unnecessary DllMain() function that caused static
17165bb6a25fSPoul-Henning Kamp          linking into a DLL to be difficult.
17175bb6a25fSPoul-Henning Kamp        - Added VC++ projects for building static libraries.
17185bb6a25fSPoul-Henning Kamp        - Reduced line-length for all source code and headers to be
17195bb6a25fSPoul-Henning Kamp          no longer than 80 characters, to help with AS/400 support.
17205bb6a25fSPoul-Henning Kamp        - Reduced memory copying during parsing (SF patch #600964).
1721e3466a89SXin LI        - Fixed a variety of bugs: see SF issues #580793, #434664,
1722e3466a89SXin LI          #483514, #580503, #581069, #584041, #584183, #584832, #585537,
1723e3466a89SXin LI          #596555, #596678, #598352, #598944, #599715, #600479, #600971.
17245bb6a25fSPoul-Henning Kamp
17255bb6a25fSPoul-Henning KampRelease 1.95.4 Fri Jul 12 2002
17265bb6a25fSPoul-Henning Kamp        - Added support for VMS, contributed by Craig Berry.  See
17275bb6a25fSPoul-Henning Kamp          vms/README.vms for more information.
17285bb6a25fSPoul-Henning Kamp        - Added Mac OS (classic) support, with a makefile for MPW,
17295bb6a25fSPoul-Henning Kamp          contributed by Thomas Wegner and Daryle Walker.
17305bb6a25fSPoul-Henning Kamp        - Added Borland C++ Builder 5 / BCC 5.5 support, contributed
17315bb6a25fSPoul-Henning Kamp          by Patrick McConnell (SF patch #538032).
1732e3466a89SXin LI        - Fixed a variety of bugs: see SF issues #441449, #563184,
1733e3466a89SXin LI          #564342, #566334, #566901, #569461, #570263, #575168, #579196.
17345bb6a25fSPoul-Henning Kamp        - Made skippedEntityHandler conform to SAX2 (see source comment)
17355bb6a25fSPoul-Henning Kamp        - Re-implemented WFC: Entity Declared from XML 1.0 spec and
17365bb6a25fSPoul-Henning Kamp          added a new error "entity declared in parameter entity":
1737e3466a89SXin LI          see SF bug report #569461 and SF patch #578161
17385bb6a25fSPoul-Henning Kamp        - Re-implemented section 5.1 from XML 1.0 spec:
1739e3466a89SXin LI          see SF bug report #570263 and SF patch #578161
17405bb6a25fSPoul-Henning Kamp
17415bb6a25fSPoul-Henning KampRelease 1.95.3 Mon Jun 3 2002
17425bb6a25fSPoul-Henning Kamp        - Added a project to the MSVC workspace to create a wchar_t
17435bb6a25fSPoul-Henning Kamp          version of the library; the DLLs are named libexpatw.dll.
17445bb6a25fSPoul-Henning Kamp        - Changed the name of the Windows DLLs from expat.dll to
17455bb6a25fSPoul-Henning Kamp          libexpat.dll; this fixes SF bug #432456.
17465bb6a25fSPoul-Henning Kamp        - Added the XML_ParserReset() API function.
17475bb6a25fSPoul-Henning Kamp        - Fixed XML_SetReturnNSTriplet() to work for element names.
17485bb6a25fSPoul-Henning Kamp        - Made the XML_UNICODE builds usable (thanks, Karl!).
17495bb6a25fSPoul-Henning Kamp        - Allow xmlwf to read from standard input.
17505bb6a25fSPoul-Henning Kamp        - Install a man page for xmlwf on Unix systems.
1751e3466a89SXin LI        - Fixed many bugs; see SF bug reports #231864, #461380, #464837,
1752e3466a89SXin LI          #466885, #469226, #477667, #484419, #487840, #494749, #496505,
1753e3466a89SXin LI          #547350.  Other bugs which we can't test as easily may also
17545bb6a25fSPoul-Henning Kamp          have been fixed, especially in the area of build support.
17555bb6a25fSPoul-Henning Kamp
17565bb6a25fSPoul-Henning KampRelease 1.95.2 Fri Jul 27 2001
17575bb6a25fSPoul-Henning Kamp        - More changes to make MSVC happy with the build; add a single
17585bb6a25fSPoul-Henning Kamp          workspace to support both the library and xmlwf application.
17595bb6a25fSPoul-Henning Kamp        - Added a Windows installer for Windows users; includes
17605bb6a25fSPoul-Henning Kamp          xmlwf.exe.
17615bb6a25fSPoul-Henning Kamp        - Added compile-time constants that can be used to determine the
17625bb6a25fSPoul-Henning Kamp          Expat version
17635bb6a25fSPoul-Henning Kamp        - Removed a lot of GNU-specific dependencies to aide portability
17645bb6a25fSPoul-Henning Kamp          among the various Unix flavors.
17655bb6a25fSPoul-Henning Kamp        - Fix the UTF-8 BOM bug.
17665bb6a25fSPoul-Henning Kamp        - Cleaned up warning messages for several compilers.
17675bb6a25fSPoul-Henning Kamp        - Added the -Wall, -Wstrict-prototypes options for GCC.
17685bb6a25fSPoul-Henning Kamp
17695bb6a25fSPoul-Henning KampRelease 1.95.1 Sun Oct 22 15:11:36 EDT 2000
17705bb6a25fSPoul-Henning Kamp        - Changes to get expat to build under Microsoft compiler
17715bb6a25fSPoul-Henning Kamp        - Removed all aborts and instead return an UNEXPECTED_STATE error.
17725bb6a25fSPoul-Henning Kamp        - Fixed a bug where a stray '%' in an entity value would cause an
17735bb6a25fSPoul-Henning Kamp          abort.
17745bb6a25fSPoul-Henning Kamp        - Defined XML_SetEndNamespaceDeclHandler. Thanks to Darryl Miles for
17755bb6a25fSPoul-Henning Kamp          finding this oversight.
17765bb6a25fSPoul-Henning Kamp        - Changed default patterns in lib/Makefile.in to fit non-GNU makes
17775bb6a25fSPoul-Henning Kamp          Thanks to robin@unrated.net for reporting and providing an
17785bb6a25fSPoul-Henning Kamp          account to test on.
17795bb6a25fSPoul-Henning Kamp        - The reference had the wrong label for XML_SetStartNamespaceDecl.
17805bb6a25fSPoul-Henning Kamp          Reported by an anonymous user.
17815bb6a25fSPoul-Henning Kamp
17825bb6a25fSPoul-Henning KampRelease 1.95.0 Fri Sep 29 2000
17835bb6a25fSPoul-Henning Kamp        - XML_ParserCreate_MM
17845bb6a25fSPoul-Henning Kamp                Allows you to set a memory management suite to replace the
17855bb6a25fSPoul-Henning Kamp                standard malloc,realloc, and free.
17865bb6a25fSPoul-Henning Kamp        - XML_SetReturnNSTriplet
17875bb6a25fSPoul-Henning Kamp                If you turn this feature on when namespace processing is in
17885bb6a25fSPoul-Henning Kamp                effect, then qualified, prefixed element and attribute names
17895bb6a25fSPoul-Henning Kamp                are returned as "uri|name|prefix" where '|' is whatever
17905bb6a25fSPoul-Henning Kamp                separator character is used in namespace processing.
17915bb6a25fSPoul-Henning Kamp        - Merged in features from perl-expat
17925bb6a25fSPoul-Henning Kamp                o XML_SetElementDeclHandler
17935bb6a25fSPoul-Henning Kamp                o XML_SetAttlistDeclHandler
17945bb6a25fSPoul-Henning Kamp                o XML_SetXmlDeclHandler
17955bb6a25fSPoul-Henning Kamp                o XML_SetEntityDeclHandler
17965bb6a25fSPoul-Henning Kamp                o StartDoctypeDeclHandler takes 3 additional parameters:
17975bb6a25fSPoul-Henning Kamp                        sysid, pubid, has_internal_subset
17985bb6a25fSPoul-Henning Kamp                o Many paired handler setters (like XML_SetElementHandler)
17995bb6a25fSPoul-Henning Kamp                  now have corresponding individual handler setters
18005bb6a25fSPoul-Henning Kamp                o XML_GetInputContext for getting the input context of
18015bb6a25fSPoul-Henning Kamp                  the current parse position.
18025bb6a25fSPoul-Henning Kamp        - Added reference material
18035bb6a25fSPoul-Henning Kamp        - Packaged into a distribution that builds a sharable library
1804