xref: /freebsd/contrib/expat/Changes (revision fe9278888fd4414abe2d922e469cf608005f4c65)
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,                           !!
18*fe927888SPhilip Paeps!! - helping CPython Expat bindings with supporting Expat's billion laughs   !!
19*fe927888SPhilip Paeps!!   attack protection API (https://github.com/python/cpython/issues/90949): !!
20*fe927888SPhilip Paeps!!   - XML_SetBillionLaughsAttackProtectionActivationThreshold               !!
21*fe927888SPhilip Paeps!!   - XML_SetBillionLaughsAttackProtectionMaximumAmplification              !!
22*fe927888SPhilip Paeps!! - helping Perl's XML::Parser Expat bindings with supporting Expat's       !!
23*fe927888SPhilip Paeps!!   security API (https://github.com/cpan-authors/XML-Parser/issues/102):   !!
24*fe927888SPhilip Paeps!!   - XML_SetBillionLaughsAttackProtectionActivationThreshold               !!
25*fe927888SPhilip Paeps!!   - XML_SetBillionLaughsAttackProtectionMaximumAmplification              !!
26*fe927888SPhilip Paeps!!   - XML_SetReparseDeferralEnabled                                         !!
27ffd294a1SEnji Cooper!! - implementing and auto-testing XML 1.0r5 support                         !!
28ffd294a1SEnji Cooper!!   (needs discussion before pull requests),                                !!
29ffd294a1SEnji Cooper!! - smart ideas on fixing the Autotools CMake files generation issue        !!
30ffd294a1SEnji Cooper!!   without breaking CI (needs discussion before pull requests),            !!
31ffd294a1SEnji Cooper!! - pushing migration from `int` to `size_t` further                        !!
32ffd294a1SEnji Cooper!!   including edge-cases test coverage (needs discussion before anything).  !!
33ffd294a1SEnji Cooper!!                                                                           !!
34ffd294a1SEnji Cooper!! For details, please reach out via e-mail to sebastian@pipping.org so we   !!
35ffd294a1SEnji Cooper!! can schedule a voice call on the topic, in English or German.             !!
36ffd294a1SEnji Cooper!!                                                                           !!
37ffd294a1SEnji Cooper!! THANK YOU!                        Sebastian Pipping -- Berlin, 2024-03-09 !!
38ffd294a1SEnji Cooper!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
39ffd294a1SEnji Cooper
40*fe927888SPhilip PaepsRelease 2.7.1 Thu March 27 2025
41*fe927888SPhilip Paeps        Bug fixes:
42*fe927888SPhilip Paeps       #980 #989  Restore event pointer behavior from Expat 2.6.4
43*fe927888SPhilip Paeps                    (that the fix to CVE-2024-8176 changed in 2.7.0);
44*fe927888SPhilip Paeps                    affected API functions are:
45*fe927888SPhilip Paeps                    - XML_GetCurrentByteCount
46*fe927888SPhilip Paeps                    - XML_GetCurrentByteIndex
47*fe927888SPhilip Paeps                    - XML_GetCurrentColumnNumber
48*fe927888SPhilip Paeps                    - XML_GetCurrentLineNumber
49*fe927888SPhilip Paeps                    - XML_GetInputContext
50*fe927888SPhilip Paeps
51*fe927888SPhilip Paeps        Other changes:
52*fe927888SPhilip Paeps       #976 #977  Autotools: Integrate files "fuzz/xml_lpm_fuzzer.{cpp,proto}"
53*fe927888SPhilip Paeps                    with Automake that were missing from 2.7.0 release tarballs
54*fe927888SPhilip Paeps       #983 #984  Fix printf format specifiers for 32bit Emscripten
55*fe927888SPhilip Paeps            #992  docs: Promote OpenSSF Best Practices self-certification
56*fe927888SPhilip Paeps            #978  tests/benchmark: Resolve mistaken double close
57*fe927888SPhilip Paeps            #986  Address compiler warnings
58*fe927888SPhilip Paeps       #990 #993  Version info bumped from 11:1:10 (libexpat*.so.1.10.1)
59*fe927888SPhilip Paeps                    to 11:2:10 (libexpat*.so.1.10.2); see https://verbump.de/
60*fe927888SPhilip Paeps                    for what these numbers do
61*fe927888SPhilip Paeps
62*fe927888SPhilip Paeps        Infrastructure:
63*fe927888SPhilip Paeps            #982  CI: Start running Perl XML::Parser integration tests
64*fe927888SPhilip Paeps            #987  CI: Enforce Clang Static Analyzer clean code
65*fe927888SPhilip Paeps            #991  CI: Re-enable warning clang-analyzer-valist.Uninitialized
66*fe927888SPhilip Paeps                    for clang-tidy
67*fe927888SPhilip Paeps            #981  CI: Cover compilation with musl
68*fe927888SPhilip Paeps       #983 #984  CI: Cover compilation with 32bit Emscripten
69*fe927888SPhilip Paeps       #976 #977  CI: Protect against fuzzer files missing from future
70*fe927888SPhilip Paeps                    release archives
71*fe927888SPhilip Paeps
72*fe927888SPhilip Paeps        Special thanks to:
73*fe927888SPhilip Paeps            Berkay Eren Ürün
74*fe927888SPhilip Paeps            Matthew Fernandez
75*fe927888SPhilip Paeps                 and
76*fe927888SPhilip Paeps            Perl XML::Parser
77*fe927888SPhilip Paeps
78*fe927888SPhilip PaepsRelease 2.7.0 Thu March 13 2025
79*fe927888SPhilip Paeps        Security fixes:
80*fe927888SPhilip Paeps       #893 #973  CVE-2024-8176 -- Fix crash from chaining a large number
81*fe927888SPhilip Paeps                    of entities caused by stack overflow by resolving use of
82*fe927888SPhilip Paeps                    recursion, for all three uses of entities:
83*fe927888SPhilip Paeps                    - general entities in character data ("<e>&g1;</e>")
84*fe927888SPhilip Paeps                    - general entities in attribute values ("<e k1='&g1;'/>")
85*fe927888SPhilip Paeps                    - parameter entities ("%p1;")
86*fe927888SPhilip Paeps                    Known impact is (reliable and easy) denial of service:
87*fe927888SPhilip 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
88*fe927888SPhilip Paeps                    (Base Score: 7.5, Temporal Score: 7.2)
89*fe927888SPhilip Paeps                    Please note that a layer of compression around XML can
90*fe927888SPhilip Paeps                    significantly reduce the minimum attack payload size.
91*fe927888SPhilip Paeps
92*fe927888SPhilip Paeps        Other changes:
93*fe927888SPhilip Paeps       #935 #937  Autotools: Make generated CMake files look for
94*fe927888SPhilip Paeps                    libexpat.@SO_MAJOR@.dylib on macOS
95*fe927888SPhilip Paeps            #925  Autotools: Sync CMake templates with CMake 3.29
96*fe927888SPhilip Paeps  #945 #962 #966  CMake: Drop support for CMake <3.13
97*fe927888SPhilip Paeps            #942  CMake: Small fuzzing related improvements
98*fe927888SPhilip Paeps            #921  docs: Add missing documentation of error code
99*fe927888SPhilip Paeps                    XML_ERROR_NOT_STARTED that was introduced with 2.6.4
100*fe927888SPhilip Paeps            #941  docs: Document need for C++11 compiler for use from C++
101*fe927888SPhilip Paeps            #959  tests/benchmark: Fix a (harmless) TOCTTOU
102*fe927888SPhilip Paeps            #944  Windows: Fix installer target location of file xmlwf.xml
103*fe927888SPhilip Paeps                    for CMake
104*fe927888SPhilip Paeps            #953  Windows: Address warning -Wunknown-warning-option
105*fe927888SPhilip Paeps                    about -Wno-pedantic-ms-format from LLVM MinGW
106*fe927888SPhilip Paeps            #971  Address Cppcheck warnings
107*fe927888SPhilip Paeps       #969 #970  Mass-migrate links from http:// to https://
108*fe927888SPhilip Paeps    #947 #958 ..
109*fe927888SPhilip Paeps       #974 #975  Document changes since the previous release
110*fe927888SPhilip Paeps       #974 #975  Version info bumped from 11:0:10 (libexpat*.so.1.10.0)
111*fe927888SPhilip Paeps                    to 11:1:10 (libexpat*.so.1.10.1); see https://verbump.de/
112*fe927888SPhilip Paeps                    for what these numbers do
113*fe927888SPhilip Paeps
114*fe927888SPhilip Paeps        Infrastructure:
115*fe927888SPhilip Paeps            #926  tests: Increase robustness
116*fe927888SPhilip Paeps    #927 #932 ..
117*fe927888SPhilip Paeps       #930 #933  tests: Increase test coverage
118*fe927888SPhilip Paeps    #617 #950 ..
119*fe927888SPhilip Paeps    #951 #952 ..
120*fe927888SPhilip Paeps    #954 #955 ..  Fuzzing: Add new fuzzer "xml_lpm_fuzzer" based on
121*fe927888SPhilip Paeps            #961    Google's libprotobuf-mutator ("LPM")
122*fe927888SPhilip Paeps            #957  Fuzzing|CI: Start producing fuzzing code coverage reports
123*fe927888SPhilip Paeps            #936  CI: Pass -q -q for LCOV >=2.1 in coverage.sh
124*fe927888SPhilip Paeps            #942  CI: Small fuzzing related improvements
125*fe927888SPhilip Paeps    #139 #203 ..
126*fe927888SPhilip Paeps       #791 #946  CI: Make GitHub Actions build using MSVC on Windows and
127*fe927888SPhilip Paeps                      produce 32bit and 64bit Windows binaries
128*fe927888SPhilip Paeps            #956  CI: Get off of about-to-be-removed Ubuntu 20.04
129*fe927888SPhilip Paeps       #960 #964  CI: Start uploading to Coverity Scan for static analysis
130*fe927888SPhilip Paeps            #972  CI: Stop loading DTD from the internet to address flaky CI
131*fe927888SPhilip Paeps            #971  CI: Adapt to breaking changes in Cppcheck
132*fe927888SPhilip Paeps
133*fe927888SPhilip Paeps        Special thanks to:
134*fe927888SPhilip Paeps            Alexander Gieringer
135*fe927888SPhilip Paeps            Berkay Eren Ürün
136*fe927888SPhilip Paeps            Hanno Böck
137*fe927888SPhilip Paeps            Jann Horn
138*fe927888SPhilip Paeps            Mark Brand
139*fe927888SPhilip Paeps            Sebastian Andrzej Siewior
140*fe927888SPhilip Paeps            Snild Dolkow
141*fe927888SPhilip Paeps            Thomas Pröll
142*fe927888SPhilip Paeps            Tomas Korbar
143*fe927888SPhilip Paeps            valord577
144*fe927888SPhilip Paeps                 and
145*fe927888SPhilip Paeps            Google Project Zero
146*fe927888SPhilip Paeps            Linutronix
147*fe927888SPhilip Paeps            Red Hat
148*fe927888SPhilip Paeps            Siemens
149*fe927888SPhilip Paeps
150908f215eSXin LIRelease 2.6.4 Wed November 6 2024
151908f215eSXin LI        Security fixes:
152908f215eSXin LI            #915  CVE-2024-50602 -- Fix crash within function XML_ResumeParser
153908f215eSXin LI                    from a NULL pointer dereference by disallowing function
154908f215eSXin LI                    XML_StopParser to (stop or) suspend an unstarted parser.
155908f215eSXin LI                    A new error code XML_ERROR_NOT_STARTED was introduced to
156908f215eSXin LI                    properly communicate this situation.  // CWE-476 CWE-754
157908f215eSXin LI
158908f215eSXin LI        Other changes:
159908f215eSXin LI            #903  CMake: Add alias target "expat::expat"
160908f215eSXin LI            #905  docs: Document use via CMake >=3.18 with FetchContent
161908f215eSXin LI                    and SOURCE_SUBDIR and its consequences
162908f215eSXin LI            #902  tests: Reduce use of global parser instance
163908f215eSXin LI            #904  tests: Resolve duplicate handler
164908f215eSXin LI       #317 #918  tests: Improve tests on doctype closing (ex CVE-2019-15903)
165908f215eSXin LI            #914  Fix signedness of format strings
166*fe927888SPhilip Paeps            #915  For use from C++, expat.h started requiring C++11 due to
167*fe927888SPhilip Paeps                    use of C99 features
168908f215eSXin LI       #919 #920  Version info bumped from 10:3:9 (libexpat*.so.1.9.3)
169908f215eSXin LI                    to 11:0:10 (libexpat*.so.1.10.0); see https://verbump.de/
170908f215eSXin LI                    for what these numbers do
171908f215eSXin LI
172908f215eSXin LI        Infrastructure:
173908f215eSXin LI            #907  CI: Upgrade Clang from 18 to 19
174908f215eSXin LI            #913  CI: Drop macos-12 and add macos-15
175908f215eSXin LI            #910  CI: Adapt to breaking changes in GitHub Actions
176908f215eSXin LI            #898  Add missing entries to .gitignore
177908f215eSXin LI
178908f215eSXin LI        Special thanks to:
179908f215eSXin LI            Hanno Böck
180908f215eSXin LI            José Eduardo Gutiérrez Conejo
181908f215eSXin LI            José Ricardo Cardona Quesada
182908f215eSXin LI
183ffd294a1SEnji CooperRelease 2.6.3 Wed September 4 2024
184ffd294a1SEnji Cooper        Security fixes:
185ffd294a1SEnji Cooper       #887 #890  CVE-2024-45490 -- Calling function XML_ParseBuffer with
186ffd294a1SEnji Cooper                    len < 0 without noticing and then calling XML_GetBuffer
187ffd294a1SEnji Cooper                    will have XML_ParseBuffer fail to recognize the problem
188ffd294a1SEnji Cooper                    and XML_GetBuffer corrupt memory.
189ffd294a1SEnji Cooper                    With the fix, XML_ParseBuffer now complains with error
190ffd294a1SEnji Cooper                    XML_ERROR_INVALID_ARGUMENT just like sibling XML_Parse
191ffd294a1SEnji Cooper                    has been doing since Expat 2.2.1, and now documented.
192ffd294a1SEnji Cooper                    Impact is denial of service to potentially artitrary code
193ffd294a1SEnji Cooper                    execution.
194ffd294a1SEnji Cooper       #888 #891  CVE-2024-45491 -- Internal function dtdCopy can have an
195ffd294a1SEnji Cooper                    integer overflow for nDefaultAtts on 32-bit platforms
196ffd294a1SEnji Cooper                    (where UINT_MAX equals SIZE_MAX).
197ffd294a1SEnji Cooper                    Impact is denial of service to potentially artitrary code
198ffd294a1SEnji Cooper                    execution.
199ffd294a1SEnji Cooper       #889 #892  CVE-2024-45492 -- Internal function nextScaffoldPart can
200ffd294a1SEnji Cooper                    have an integer overflow for m_groupSize on 32-bit
201ffd294a1SEnji Cooper                    platforms (where UINT_MAX equals SIZE_MAX).
202ffd294a1SEnji Cooper                    Impact is denial of service to potentially artitrary code
203ffd294a1SEnji Cooper                    execution.
204ffd294a1SEnji Cooper
205ffd294a1SEnji Cooper        Other changes:
206ffd294a1SEnji Cooper       #851 #879  Autotools: Sync CMake templates with CMake 3.28
207ffd294a1SEnji Cooper            #853  Autotools: Always provide path to find(1) for portability
208ffd294a1SEnji Cooper            #861  Autotools: Ensure that the m4 directory always exists.
209ffd294a1SEnji Cooper            #870  Autotools: Simplify handling of SIZEOF_VOID_P
210ffd294a1SEnji Cooper            #869  Autotools: Support non-GNU sed
211ffd294a1SEnji Cooper            #856  Autotools|CMake: Fix main() to main(void)
212ffd294a1SEnji Cooper            #865  Autotools|CMake: Fix compile tests for HAVE_SYSCALL_GETRANDOM
213ffd294a1SEnji Cooper            #863  Autotools|CMake: Stop requiring dos2unix
214ffd294a1SEnji Cooper       #854 #855  CMake: Fix check for symbols size_t and off_t
215ffd294a1SEnji Cooper            #864  docs|tests: Convert README to Markdown and update
216ffd294a1SEnji Cooper            #741  Windows: Drop support for Visual Studio <=15.0/2017
217ffd294a1SEnji Cooper            #886  Drop needless XML_DTD guards around is_param access
218ffd294a1SEnji Cooper            #885  Fix typo in a code comment
219ffd294a1SEnji Cooper       #894 #896  Version info bumped from 10:2:9 (libexpat*.so.1.9.2)
220ffd294a1SEnji Cooper                    to 10:3:9 (libexpat*.so.1.9.3); see https://verbump.de/
221ffd294a1SEnji Cooper                    for what these numbers do
222ffd294a1SEnji Cooper
223ffd294a1SEnji Cooper        Infrastructure:
224ffd294a1SEnji Cooper            #880  Readme: Promote the call for help
225ffd294a1SEnji Cooper            #868  CI: Fix various issues
226ffd294a1SEnji Cooper            #849  CI: Allow triggering GitHub Actions workflows manually
227ffd294a1SEnji Cooper    #851 #872 ..
228ffd294a1SEnji Cooper       #873 #879  CI: Adapt to breaking changes in GitHub Actions
229ffd294a1SEnji Cooper
230ffd294a1SEnji Cooper        Special thanks to:
231ffd294a1SEnji Cooper            Alexander Bluhm
232ffd294a1SEnji Cooper            Berkay Eren Ürün
233ffd294a1SEnji Cooper            Dag-Erling Smørgrav
234ffd294a1SEnji Cooper            Ferenc Géczi
235ffd294a1SEnji Cooper            TaiYou
236ffd294a1SEnji Cooper
237ffd294a1SEnji CooperRelease 2.6.2 Wed March 13 2024
238ffd294a1SEnji Cooper        Security fixes:
239ffd294a1SEnji Cooper       #839 #842  CVE-2024-28757 -- Prevent billion laughs attacks with
240ffd294a1SEnji Cooper                    isolated use of external parsers.  Please see the commit
241ffd294a1SEnji Cooper                    message of commit 1d50b80cf31de87750103656f6eb693746854aa8
242ffd294a1SEnji Cooper                    for details.
243ffd294a1SEnji Cooper
244ffd294a1SEnji Cooper        Bug fixes:
245ffd294a1SEnji Cooper       #839 #841  Reject direct parameter entity recursion
246ffd294a1SEnji Cooper                    and avoid the related undefined behavior
247ffd294a1SEnji Cooper
248ffd294a1SEnji Cooper        Other changes:
249ffd294a1SEnji Cooper            #847  Autotools: Fix build for DOCBOOK_TO_MAN containing spaces
250ffd294a1SEnji Cooper            #837  Add missing #821 and #824 to 2.6.1 change log
251ffd294a1SEnji Cooper       #838 #843  Version info bumped from 10:1:9 (libexpat*.so.1.9.1)
252ffd294a1SEnji Cooper                    to 10:2:9 (libexpat*.so.1.9.2); see https://verbump.de/
253ffd294a1SEnji Cooper                    for what these numbers do
254ffd294a1SEnji Cooper
255ffd294a1SEnji Cooper        Special thanks to:
256ffd294a1SEnji Cooper            Philippe Antoine
257ffd294a1SEnji Cooper            Tomas Korbar
258ffd294a1SEnji Cooper                 and
259ffd294a1SEnji Cooper            Clang UndefinedBehaviorSanitizer
260ffd294a1SEnji Cooper            OSS-Fuzz / ClusterFuzz
261ffd294a1SEnji Cooper
262ffd294a1SEnji CooperRelease 2.6.1 Thu February 29 2024
263ffd294a1SEnji Cooper        Bug fixes:
264ffd294a1SEnji Cooper            #817  Make tests independent of CPU speed, and thus more robust
265ffd294a1SEnji Cooper       #828 #836  Expose billion laughs API with XML_DTD defined and
266ffd294a1SEnji Cooper                    XML_GE undefined, regression from 2.6.0
267ffd294a1SEnji Cooper
268ffd294a1SEnji Cooper        Other changes:
269ffd294a1SEnji Cooper            #829  Hide test-only code behind new internal macro
270ffd294a1SEnji Cooper            #833  Autotools: Reject expat_config.h.in defining SIZEOF_VOID_P
271ffd294a1SEnji Cooper       #821 #824  Autotools: Fix "make clean" for case:
272ffd294a1SEnji Cooper                    ./configure --without-docbook && make clean all
273ffd294a1SEnji Cooper            #819  Address compiler warnings
274ffd294a1SEnji Cooper       #832 #834  Version info bumped from 10:0:9 (libexpat*.so.1.9.0)
275ffd294a1SEnji Cooper                    to 10:1:9 (libexpat*.so.1.9.1); see https://verbump.de/
276ffd294a1SEnji Cooper                    for what these numbers do
277ffd294a1SEnji Cooper
278ffd294a1SEnji Cooper        Infrastructure:
279ffd294a1SEnji Cooper            #818  CI: Adapt to breaking changes in clang-format
280ffd294a1SEnji Cooper
281ffd294a1SEnji Cooper        Special thanks to:
282ffd294a1SEnji Cooper            David Hall
283ffd294a1SEnji Cooper            Snild Dolkow
2840a48773fSEric van Gyzen
2854543ef51SXin LIRelease 2.6.0 Tue February 6 2024
2864543ef51SXin LI        Security fixes:
2874543ef51SXin LI      #789 #814  CVE-2023-52425 -- Fix quadratic runtime issues with big tokens
2884543ef51SXin LI                   that can cause denial of service, in partial where
2894543ef51SXin LI                   dealing with compressed XML input.  Applications
2904543ef51SXin LI                   that parsed a document in one go -- a single call to
2914543ef51SXin LI                   functions XML_Parse or XML_ParseBuffer -- were not affected.
2924543ef51SXin LI                   The smaller the chunks/buffers you use for parsing
2934543ef51SXin LI                   previously, the bigger the problem prior to the fix.
2944543ef51SXin LI                   Backporters should be careful to no omit parts of
2954543ef51SXin LI                   pull request #789 and to include earlier pull request #771,
2964543ef51SXin LI                   in order to not break the fix.
2974543ef51SXin LI           #777  CVE-2023-52426 -- Fix billion laughs attacks for users
2984543ef51SXin LI                   compiling *without* XML_DTD defined (which is not common).
2994543ef51SXin LI                   Users with XML_DTD defined have been protected since
3004543ef51SXin LI                   Expat >=2.4.0 (and that was CVE-2013-0340 back then).
3014543ef51SXin LI
3024543ef51SXin LI        Bug fixes:
3034543ef51SXin LI            #753  Fix parse-size-dependent "invalid token" error for
3044543ef51SXin LI                    external entities that start with a byte order mark
3054543ef51SXin LI            #780  Fix NULL pointer dereference in setContext via
3064543ef51SXin LI                    XML_ExternalEntityParserCreate for compilation with
3074543ef51SXin LI                    XML_DTD undefined
3084543ef51SXin LI       #812 #813  Protect against closing entities out of order
3094543ef51SXin LI
3104543ef51SXin LI        Other changes:
3114543ef51SXin LI            #723  Improve support for arc4random/arc4random_buf
3124543ef51SXin LI       #771 #788  Improve buffer growth in XML_GetBuffer and XML_Parse
3134543ef51SXin LI       #761 #770  xmlwf: Support --help and --version
3144543ef51SXin LI       #759 #770  xmlwf: Support custom buffer size for XML_GetBuffer and read
3154543ef51SXin LI            #744  xmlwf: Improve language and URL clickability in help output
3164543ef51SXin LI            #673  examples: Add new example "element_declarations.c"
3174543ef51SXin LI            #764  Be stricter about macro XML_CONTEXT_BYTES at build time
3184543ef51SXin LI            #765  Make inclusion to expat_config.h consistent
3194543ef51SXin LI       #726 #727  Autotools: configure.ac: Support --disable-maintainer-mode
3204543ef51SXin LI    #678 #705 ..
3214543ef51SXin LI  #706 #733 #792  Autotools: Sync CMake templates with CMake 3.26
3224543ef51SXin LI            #795  Autotools: Make installation of shipped man page doc/xmlwf.1
3234543ef51SXin LI                    independent of docbook2man availability
3244543ef51SXin LI            #815  Autotools|CMake: Add missing -DXML_STATIC to pkg-config file
3254543ef51SXin LI                    section "Cflags.private" in order to fix compilation
3264543ef51SXin LI                    against static libexpat using pkg-config on Windows
3274543ef51SXin LI       #724 #751  Autotools|CMake: Require a C99 compiler
3284543ef51SXin LI                    (a de-facto requirement already since Expat 2.2.2 of 2017)
3294543ef51SXin LI            #793  Autotools|CMake: Fix PACKAGE_BUGREPORT variable
3304543ef51SXin LI       #750 #786  Autotools|CMake: Make test suite require a C++11 compiler
3314543ef51SXin LI            #749  CMake: Require CMake >=3.5.0
3324543ef51SXin LI            #672  CMake: Lowercase off_t and size_t to help a bug in Meson
3334543ef51SXin LI            #746  CMake: Sort xmlwf sources alphabetically
3344543ef51SXin LI            #785  CMake|Windows: Fix generation of DLL file version info
3354543ef51SXin LI            #790  CMake: Build tests/benchmark/benchmark.c as well for
3364543ef51SXin LI                    a build with -DEXPAT_BUILD_TESTS=ON
3374543ef51SXin LI       #745 #757  docs: Document the importance of isFinal + adjust tests
3384543ef51SXin LI                    accordingly
3394543ef51SXin LI            #736  docs: Improve use of "NULL" and "null"
3404543ef51SXin LI            #713  docs: Be specific about version of XML (XML 1.0r4)
3414543ef51SXin LI                    and version of C (C99); (XML 1.0r5 will need a sponsor.)
3424543ef51SXin LI            #762  docs: reference.html: Promote function XML_ParseBuffer more
3434543ef51SXin LI            #779  docs: reference.html: Add HTML anchors to XML_* macros
3444543ef51SXin LI            #760  docs: reference.html: Upgrade to OK.css 1.2.0
3454543ef51SXin LI       #763 #739  docs: Fix typos
3464543ef51SXin LI            #696  docs|CI: Use HTTPS URLs instead of HTTP at various places
3474543ef51SXin LI    #669 #670 ..
3484543ef51SXin LI    #692 #703 ..
3494543ef51SXin LI       #733 #772  Address compiler warnings
3504543ef51SXin LI       #798 #800  Address clang-tidy warnings
3514543ef51SXin LI       #775 #776  Version info bumped from 9:10:8 (libexpat*.so.1.8.10)
3524543ef51SXin LI                    to 10:0:9 (libexpat*.so.1.9.0); see https://verbump.de/
3534543ef51SXin LI                    for what these numbers do
3544543ef51SXin LI
3554543ef51SXin LI        Infrastructure:
3564543ef51SXin LI       #700 #701  docs: Document security policy in file SECURITY.md
3574543ef51SXin LI            #766  docs: Improve parse buffer variables in-code documentation
3584543ef51SXin LI    #674 #738 ..
3594543ef51SXin LI    #740 #747 ..
3604543ef51SXin LI  #748 #781 #782  Refactor coverage and conformance tests
3614543ef51SXin LI       #714 #716  Refactor debug level variables to unsigned long
3624543ef51SXin LI            #671  Improve handling of empty environment variable value
3634543ef51SXin LI                    in function getDebugLevel (without visible user effect)
3644543ef51SXin LI    #755 #774 ..
3654543ef51SXin LI    #758 #783 ..
3664543ef51SXin LI       #784 #787  tests: Improve test coverage with regard to parse chunk size
3674543ef51SXin LI  #660 #797 #801  Fuzzing: Improve fuzzing coverage
3684543ef51SXin LI       #367 #799  Fuzzing|CI: Start running OSS-Fuzz fuzzing regression tests
3694543ef51SXin LI       #698 #721  CI: Resolve some Travis CI leftovers
3704543ef51SXin LI            #669  CI: Be robust towards absence of Git tags
3714543ef51SXin LI       #693 #694  CI: Set permissions to "contents: read" for security
3724543ef51SXin LI            #709  CI: Pin all GitHub Actions to specific commits for security
3734543ef51SXin LI            #739  CI: Reject spelling errors using codespell
3744543ef51SXin LI            #798  CI: Enforce clang-tidy clean code
3754543ef51SXin LI    #773 #808 ..
3764543ef51SXin LI       #809 #810  CI: Upgrade Clang from 15 to 18
3774543ef51SXin LI            #796  CI: Start using Clang's Control Flow Integrity sanitizer
3784543ef51SXin LI  #675 #720 #722  CI: Adapt to breaking changes in GitHub Actions Ubuntu images
3794543ef51SXin LI            #689  CI: Adapt to breaking changes in Clang/LLVM Debian packaging
3804543ef51SXin LI            #763  CI: Adapt to breaking changes in codespell
3814543ef51SXin LI            #803  CI: Adapt to breaking changes in Cppcheck
3824543ef51SXin LI
3834543ef51SXin LI        Special thanks to:
3844543ef51SXin LI            Ivan Galkin
3854543ef51SXin LI            Joyce Brum
3864543ef51SXin LI            Philippe Antoine
3874543ef51SXin LI            Rhodri James
3884543ef51SXin LI            Snild Dolkow
3894543ef51SXin LI            spookyahell
3904543ef51SXin LI            Steven Garske
3914543ef51SXin LI                 and
3924543ef51SXin LI            Clang AddressSanitizer
3934543ef51SXin LI            Clang UndefinedBehaviorSanitizer
3944543ef51SXin LI            codespell
3954543ef51SXin LI            GCC Farm Project
3964543ef51SXin LI            OSS-Fuzz
3974543ef51SXin LI            Sony Mobile
3984543ef51SXin LI
399dc58b3fcSXin LIRelease 2.5.0 Tue October 25 2022
400dc58b3fcSXin LI        Security fixes:
401dc58b3fcSXin LI  #616 #649 #650  CVE-2022-43680 -- Fix heap use-after-free after overeager
402dc58b3fcSXin LI                    destruction of a shared DTD in function
403dc58b3fcSXin LI                    XML_ExternalEntityParserCreate in out-of-memory situations.
404dc58b3fcSXin LI                    Expected impact is denial of service or potentially
405dc58b3fcSXin LI                    arbitrary code execution.
406dc58b3fcSXin LI
407dc58b3fcSXin LI        Bug fixes:
4084543ef51SXin LI       #612 #645  Fix corruption from undefined entities
409dc58b3fcSXin LI       #613 #654  Fix case when parsing was suspended while processing nested
410dc58b3fcSXin LI                    entities
411dc58b3fcSXin LI  #616 #652 #653  Stop leaking opening tag bindings after a closing tag
412dc58b3fcSXin LI                    mismatch error where a parser is reset through
413dc58b3fcSXin LI                    XML_ParserReset and then reused to parse
414dc58b3fcSXin LI            #656  CMake: Fix generation of pkg-config file
415dc58b3fcSXin LI            #658  MinGW|CMake: Fix static library name
416dc58b3fcSXin LI
417dc58b3fcSXin LI        Other changes:
418dc58b3fcSXin LI            #663  Protect header expat_config.h from multiple inclusion
419dc58b3fcSXin LI            #666  examples: Make use of XML_GetBuffer and be more
420dc58b3fcSXin LI                    consistent across examples
421dc58b3fcSXin LI            #648  Address compiler warnings
422dc58b3fcSXin LI       #667 #668  Version info bumped from 9:9:8 to 9:10:8;
423dc58b3fcSXin LI                    see https://verbump.de/ for what these numbers do
424dc58b3fcSXin LI
425dc58b3fcSXin LI        Special thanks to:
426dc58b3fcSXin LI            Jann Horn
427dc58b3fcSXin LI            Mark Brand
428dc58b3fcSXin LI            Osyotr
429dc58b3fcSXin LI            Rhodri James
430dc58b3fcSXin LI                 and
431dc58b3fcSXin LI            Google Project Zero
432dc58b3fcSXin LI
43371f0c44aSXin LIRelease 2.4.9 Tue September 20 2022
43471f0c44aSXin LI        Security fixes:
43571f0c44aSXin LI       #629 #640  CVE-2022-40674 -- Heap use-after-free vulnerability in
43671f0c44aSXin LI                    function doContent. Expected impact is denial of service
43771f0c44aSXin LI                    or potentially arbitrary code execution.
43871f0c44aSXin LI
43971f0c44aSXin LI        Bug fixes:
44071f0c44aSXin LI            #634  MinGW: Fix mis-compilation for -D__USE_MINGW_ANSI_STDIO=0
44171f0c44aSXin LI            #614  docs: Fix documentation on effect of switch XML_DTD on
44271f0c44aSXin LI                    symbol visibility in doc/reference.html
44371f0c44aSXin LI
44471f0c44aSXin LI        Other changes:
44571f0c44aSXin LI            #638  MinGW: Make fix-xmltest-log.sh drop more Wine bug output
44671f0c44aSXin LI       #596 #625  Autotools: Sync CMake templates with CMake 3.22
44771f0c44aSXin LI            #608  CMake: Migrate from use of CMAKE_*_POSTFIX to
44871f0c44aSXin LI                    dedicated variables EXPAT_*_POSTFIX to stop affecting
44971f0c44aSXin LI                    other projects
45071f0c44aSXin LI       #597 #599  Windows|CMake: Add missing -DXML_STATIC to test runners
45171f0c44aSXin LI                    and fuzzers
45271f0c44aSXin LI       #512 #621  Windows|CMake: Render .def file from a template to fix
45371f0c44aSXin LI                    linking with -DEXPAT_DTD=OFF and/or -DEXPAT_ATTR_INFO=ON
45471f0c44aSXin LI       #611 #621  MinGW|CMake: Apply MSVC .def file when linking
45571f0c44aSXin LI       #622 #624  MinGW|CMake: Sync library name with GNU Autotools,
45671f0c44aSXin LI                    i.e. produce libexpat-1.dll rather than libexpat.dll
45771f0c44aSXin LI                    by default.  Filename libexpat.dll.a is unaffected.
45871f0c44aSXin LI            #632  MinGW|CMake: Set missing variable CMAKE_RC_COMPILER in
45971f0c44aSXin LI                    toolchain file "cmake/mingw-toolchain.cmake" to avoid
46071f0c44aSXin LI                    error "windres: Command not found" on e.g. Ubuntu 20.04
46171f0c44aSXin LI       #597 #627  CMake: Unify inconsistent use of set() and option() in
46271f0c44aSXin LI                    context of public build time options to take need for
46371f0c44aSXin LI                    set(.. FORCE) in projects using Expat by means of
46471f0c44aSXin LI                    add_subdirectory(..) off Expat's users' shoulders
46571f0c44aSXin LI       #626 #641  Stop exporting API symbols when building a static library
46671f0c44aSXin LI            #644  Resolve use of deprecated "fgrep" by "grep -F"
46771f0c44aSXin LI            #620  CMake: Make documentation on variables a bit more consistent
46871f0c44aSXin LI            #636  CMake: Drop leading whitespace from a #cmakedefine line in
46971f0c44aSXin LI                    file expat_config.h.cmake
47071f0c44aSXin LI            #594  xmlwf: Fix harmless variable mix-up in function nsattcmp
47171f0c44aSXin LI  #592 #593 #610  Address Cppcheck warnings
47271f0c44aSXin LI            #643  Address Clang 15 compiler warnings
47371f0c44aSXin LI       #642 #644  Version info bumped from 9:8:8 to 9:9:8;
47471f0c44aSXin LI                    see https://verbump.de/ for what these numbers do
47571f0c44aSXin LI
47671f0c44aSXin LI        Infrastructure:
47771f0c44aSXin LI       #597 #598  CI: Windows: Start covering MSVC 2022
47871f0c44aSXin LI            #619  CI: macOS: Migrate off deprecated macOS 10.15
47971f0c44aSXin LI            #632  CI: Linux: Make migration off deprecated Ubuntu 18.04 work
48071f0c44aSXin LI            #643  CI: Upgrade Clang from 14 to 15
48171f0c44aSXin LI            #637  apply-clang-format.sh: Add support for BSD find
48271f0c44aSXin LI            #633  coverage.sh: Exclude MinGW headers
48371f0c44aSXin LI            #635  coverage.sh: Fix name collision for -funsigned-char
48471f0c44aSXin LI
48571f0c44aSXin LI        Special thanks to:
48671f0c44aSXin LI            David Faure
48771f0c44aSXin LI            Felix Wilhelm
48871f0c44aSXin LI            Frank Bergmann
48971f0c44aSXin LI            Rhodri James
49071f0c44aSXin LI            Rosen Penev
49171f0c44aSXin LI            Thijs Schreijer
49271f0c44aSXin LI            Vincent Torri
49371f0c44aSXin LI                 and
49471f0c44aSXin LI            Google Project Zero
49571f0c44aSXin LI
49671f0c44aSXin LIRelease 2.4.8 Mon March 28 2022
49771f0c44aSXin LI        Other changes:
49871f0c44aSXin LI            #587  pkg-config: Move "-lm" to section "Libs.private"
49971f0c44aSXin LI            #587  CMake|MSVC: Fix pkg-config section "Libs"
50071f0c44aSXin LI        #55 #582  CMake|macOS: Start using linker arguments
50171f0c44aSXin LI                    "-compatibility_version <version>" and
50271f0c44aSXin LI                    "-current_version <version>" in a way compatible with
50371f0c44aSXin LI                    GNU Libtool
50471f0c44aSXin LI       #590 #591  Version info bumped from 9:7:8 to 9:8:8;
50571f0c44aSXin LI                    see https://verbump.de/ for what these numbers do
50671f0c44aSXin LI
50771f0c44aSXin LI        Infrastructure:
50871f0c44aSXin LI            #589  CI: Upgrade Clang from 13 to 14
50971f0c44aSXin LI
51071f0c44aSXin LI        Special thanks to:
51171f0c44aSXin LI            evpobr
51271f0c44aSXin LI            Kai Pastor
51371f0c44aSXin LI            Sam James
51471f0c44aSXin LI
5157ed8e142SXin LIRelease 2.4.7 Fri March 4 2022
5167ed8e142SXin LI        Bug fixes:
5177ed8e142SXin LI       #572 #577  Relax fix to CVE-2022-25236 (introduced with release 2.4.5)
5187ed8e142SXin LI                    with regard to all valid URI characters (RFC 3986),
5197ed8e142SXin LI                    i.e. the following set (excluding whitespace):
5207ed8e142SXin LI                    ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz
5217ed8e142SXin LI                    0123456789 % -._~ :/?#[]@ !$&'()*+,;=
5227ed8e142SXin LI
5237ed8e142SXin LI        Other changes:
5247ed8e142SXin LI  #555 #570 #581  CMake|Windows: Store Expat version in the DLL
5257ed8e142SXin LI            #577  Document consequences of namespace separator choices not just
5267ed8e142SXin LI                    in doc/reference.html but also in header <expat.h>
5277ed8e142SXin LI            #577  Document Expat's lack of validation of namespace URIs against
5287ed8e142SXin LI                    RFC 3986, and that the XML 1.0r4 specification doesn't
5297ed8e142SXin LI                    require Expat to validate namespace URIs, and that Expat
5307ed8e142SXin LI                    may do more in that regard in future releases.
5317ed8e142SXin LI                    If you find need for strict RFC 3986 URI validation on
5327ed8e142SXin LI                    application level today, https://uriparser.github.io/ may
5337ed8e142SXin LI                    be of interest.
5347ed8e142SXin LI            #579  Fix documentation of XML_EndDoctypeDeclHandler in <expat.h>
5357ed8e142SXin LI            #575  Document that a call to XML_FreeContentModel can be done at
5367ed8e142SXin LI                    a later time from outside the element declaration handler
5377ed8e142SXin LI            #574  Make hardcoded namespace URIs easier to find in code
5387ed8e142SXin LI            #573  Update documentation on use of XML_POOR_ENTOPY on Solaris
5397ed8e142SXin LI       #569 #571  tests: Resolve use of macros NAN and INFINITY for GNU G++
5407ed8e142SXin LI                    4.8.2 on Solaris.
5417ed8e142SXin LI       #578 #580  Version info bumped from 9:6:8 to 9:7:8;
5427ed8e142SXin LI                    see https://verbump.de/ for what these numbers do
5437ed8e142SXin LI
5447ed8e142SXin LI        Special thanks to:
5457ed8e142SXin LI            Jeffrey Walton
5467ed8e142SXin LI            Johnny Jazeix
5477ed8e142SXin LI            Thijs Schreijer
5487ed8e142SXin LI
549ac69e5d4SEric van GyzenRelease 2.4.6 Sun February 20 2022
550ac69e5d4SEric van Gyzen        Bug fixes:
551ac69e5d4SEric van Gyzen            #566  Fix a regression introduced by the fix for CVE-2022-25313
552ac69e5d4SEric van Gyzen                    in release 2.4.5 that affects applications that (1)
553ac69e5d4SEric van Gyzen                    call function XML_SetElementDeclHandler and (2) are
554ac69e5d4SEric van Gyzen                    parsing XML that contains nested element declarations
555ac69e5d4SEric van Gyzen                    (e.g. "<!ELEMENT junk ((bar|foo|xyz+), zebra*)>").
556ac69e5d4SEric van Gyzen
557ac69e5d4SEric van Gyzen        Other changes:
558ac69e5d4SEric van Gyzen       #567 #568  Version info bumped from 9:5:8 to 9:6:8;
559ac69e5d4SEric van Gyzen                    see https://verbump.de/ for what these numbers do
560ac69e5d4SEric van Gyzen
561ac69e5d4SEric van Gyzen        Special thanks to:
562ac69e5d4SEric van Gyzen            Matt Sergeant
563ac69e5d4SEric van Gyzen            Samanta Navarro
564ac69e5d4SEric van Gyzen            Sergei Trofimovich
565ac69e5d4SEric van Gyzen                 and
566ac69e5d4SEric van Gyzen            NixOS
567ac69e5d4SEric van Gyzen            Perl XML::Parser
568ac69e5d4SEric van Gyzen
569ac69e5d4SEric van GyzenRelease 2.4.5 Fri February 18 2022
570ac69e5d4SEric van Gyzen        Security fixes:
571ac69e5d4SEric van Gyzen            #562  CVE-2022-25235 -- Passing malformed 2- and 3-byte UTF-8
572ac69e5d4SEric van Gyzen                    sequences (e.g. from start tag names) to the XML
573ac69e5d4SEric van Gyzen                    processing application on top of Expat can cause
574ac69e5d4SEric van Gyzen                    arbitrary damage (e.g. code execution) depending
575ac69e5d4SEric van Gyzen                    on how invalid UTF-8 is handled inside the XML
576ac69e5d4SEric van Gyzen                    processor; validation was not their job but Expat's.
577ac69e5d4SEric van Gyzen                    Exploits with code execution are known to exist.
578ac69e5d4SEric van Gyzen            #561  CVE-2022-25236 -- Passing (one or more) namespace separator
579ac69e5d4SEric van Gyzen                    characters in "xmlns[:prefix]" attribute values
580ac69e5d4SEric van Gyzen                    made Expat send malformed tag names to the XML
581ac69e5d4SEric van Gyzen                    processor on top of Expat which can cause
582ac69e5d4SEric van Gyzen                    arbitrary damage (e.g. code execution) depending
583ac69e5d4SEric van Gyzen                    on such unexpectable cases are handled inside the XML
584ac69e5d4SEric van Gyzen                    processor; validation was not their job but Expat's.
585ac69e5d4SEric van Gyzen                    Exploits with code execution are known to exist.
586ac69e5d4SEric van Gyzen            #558  CVE-2022-25313 -- Fix stack exhaustion in doctype parsing
587ac69e5d4SEric van Gyzen                    that could be triggered by e.g. a 2 megabytes
588ac69e5d4SEric van Gyzen                    file with a large number of opening braces.
589ac69e5d4SEric van Gyzen                    Expected impact is denial of service or potentially
590ac69e5d4SEric van Gyzen                    arbitrary code execution.
591ac69e5d4SEric van Gyzen            #560  CVE-2022-25314 -- Fix integer overflow in function copyString;
592ac69e5d4SEric van Gyzen                    only affects the encoding name parameter at parser creation
593ac69e5d4SEric van Gyzen                    time which is often hardcoded (rather than user input),
594ac69e5d4SEric van Gyzen                    takes a value in the gigabytes to trigger, and a 64-bit
595ac69e5d4SEric van Gyzen                    machine.  Expected impact is denial of service.
596ac69e5d4SEric van Gyzen            #559  CVE-2022-25315 -- Fix integer overflow in function storeRawNames;
597ac69e5d4SEric van Gyzen                    needs input in the gigabytes and a 64-bit machine.
598ac69e5d4SEric van Gyzen                    Expected impact is denial of service or potentially
599ac69e5d4SEric van Gyzen                    arbitrary code execution.
600ac69e5d4SEric van Gyzen
601ac69e5d4SEric van Gyzen        Other changes:
602ac69e5d4SEric van Gyzen       #557 #564  Version info bumped from 9:4:8 to 9:5:8;
603ac69e5d4SEric van Gyzen                    see https://verbump.de/ for what these numbers do
604ac69e5d4SEric van Gyzen
605ac69e5d4SEric van Gyzen        Special thanks to:
606ac69e5d4SEric van Gyzen            Ivan Fratric
607ac69e5d4SEric van Gyzen            Samanta Navarro
608ac69e5d4SEric van Gyzen                 and
609ac69e5d4SEric van Gyzen            Google Project Zero
610ac69e5d4SEric van Gyzen            JetBrains
611ac69e5d4SEric van Gyzen
612ac69e5d4SEric van GyzenRelease 2.4.4 Sun January 30 2022
613ac69e5d4SEric van Gyzen        Security fixes:
614ac69e5d4SEric van Gyzen            #550  CVE-2022-23852 -- Fix signed integer overflow
615ac69e5d4SEric van Gyzen                    (undefined behavior) in function XML_GetBuffer
616ac69e5d4SEric van Gyzen                    (that is also called by function XML_Parse internally)
617ac69e5d4SEric van Gyzen                    for when XML_CONTEXT_BYTES is defined to >0 (which is both
618ac69e5d4SEric van Gyzen                    common and default).
619ac69e5d4SEric van Gyzen                    Impact is denial of service or more.
620ac69e5d4SEric van Gyzen            #551  CVE-2022-23990 -- Fix unsigned integer overflow in function
621ac69e5d4SEric van Gyzen                    doProlog triggered by large content in element type
622ac69e5d4SEric van Gyzen                    declarations when there is an element declaration handler
623ac69e5d4SEric van Gyzen                    present (from a prior call to XML_SetElementDeclHandler).
624ac69e5d4SEric van Gyzen                    Impact is denial of service or more.
625ac69e5d4SEric van Gyzen
626ac69e5d4SEric van Gyzen        Bug fixes:
627ac69e5d4SEric van Gyzen       #544 #545  xmlwf: Fix a memory leak on output file opening error
628ac69e5d4SEric van Gyzen
629ac69e5d4SEric van Gyzen        Other changes:
630ac69e5d4SEric van Gyzen            #546  Autotools: Fix broken CMake support under Cygwin
631ac69e5d4SEric van Gyzen            #554  Windows: Add missing files to the installer to fix
632ac69e5d4SEric van Gyzen                    compilation with CMake from installed sources
633ac69e5d4SEric van Gyzen       #552 #554  Version info bumped from 9:3:8 to 9:4:8;
634ac69e5d4SEric van Gyzen                    see https://verbump.de/ for what these numbers do
635ac69e5d4SEric van Gyzen
636ac69e5d4SEric van Gyzen        Special thanks to:
637ac69e5d4SEric van Gyzen            Carlo Bramini
638ac69e5d4SEric van Gyzen            hwt0415
639ac69e5d4SEric van Gyzen            Roland Illig
640ac69e5d4SEric van Gyzen            Samanta Navarro
641ac69e5d4SEric van Gyzen                 and
642ac69e5d4SEric van Gyzen            Clang LeakSan and the Clang team
643ac69e5d4SEric van Gyzen
644cc68614dSXin LIRelease 2.4.3 Sun January 16 2022
645cc68614dSXin LI        Security fixes:
646cc68614dSXin LI       #531 #534  CVE-2021-45960 -- Fix issues with left shifts by >=29 places
647cc68614dSXin LI                    resulting in
648cc68614dSXin LI                      a) realloc acting as free
649cc68614dSXin LI                      b) realloc allocating too few bytes
650cc68614dSXin LI                      c) undefined behavior
651cc68614dSXin LI                    depending on architecture and precise value
652cc68614dSXin LI                    for XML documents with >=2^27+1 prefixed attributes
653cc68614dSXin LI                    on a single XML tag a la
654cc68614dSXin LI                    "<r xmlns:a='[..]' a:a123='[..]' [..] />"
655cc68614dSXin LI                    where XML_ParserCreateNS is used to create the parser
656cc68614dSXin LI                    (which needs argument "-n" when running xmlwf).
657cc68614dSXin LI                    Impact is denial of service, or more.
658cc68614dSXin LI       #532 #538  CVE-2021-46143 (ZDI-CAN-16157) -- Fix integer overflow
659cc68614dSXin LI                    on variable m_groupSize in function doProlog leading
660cc68614dSXin LI                    to realloc acting as free.
661cc68614dSXin LI                    Impact is denial of service or more.
662cc68614dSXin LI            #539  CVE-2022-22822 to CVE-2022-22827 -- Prevent integer overflows
663cc68614dSXin LI                    near memory allocation at multiple places.  Mitre assigned
664cc68614dSXin LI                    a dedicated CVE for each involved internal C function:
665cc68614dSXin LI                    - CVE-2022-22822 for function addBinding
666cc68614dSXin LI                    - CVE-2022-22823 for function build_model
667cc68614dSXin LI                    - CVE-2022-22824 for function defineAttribute
668cc68614dSXin LI                    - CVE-2022-22825 for function lookup
669cc68614dSXin LI                    - CVE-2022-22826 for function nextScaffoldPart
670cc68614dSXin LI                    - CVE-2022-22827 for function storeAtts
671cc68614dSXin LI                    Impact is denial of service or more.
672cc68614dSXin LI
673cc68614dSXin LI        Other changes:
674cc68614dSXin LI            #535  CMake: Make call to file(GENERATE [..]) work for CMake <3.19
675cc68614dSXin LI            #541  Autotools|CMake: MinGW: Make run.sh(.in) work for Cygwin
676cc68614dSXin LI                    and MSYS2 by not going through Wine on these platforms
677cc68614dSXin LI       #527 #528  Address compiler warnings
678cc68614dSXin LI       #533 #543  Version info bumped from 9:2:8 to 9:3:8;
679cc68614dSXin LI                    see https://verbump.de/ for what these numbers do
680cc68614dSXin LI
681cc68614dSXin LI        Infrastructure:
682cc68614dSXin LI            #536  CI: Check for realistic minimum CMake version
683cc68614dSXin LI       #529 #539  CI: Cover compilation with -m32
684cc68614dSXin LI            #529  CI: Store coverage reports as artifacts for download
685cc68614dSXin LI            #528  CI: Upgrade Clang from 11 to 13
686cc68614dSXin LI
687cc68614dSXin LI        Special thanks to:
688cc68614dSXin LI            An anonymous whitehat
689cc68614dSXin LI            Christopher Degawa
690cc68614dSXin LI            J. Peter Mugaas
691cc68614dSXin LI            Tyson Smith
692cc68614dSXin LI                 and
693cc68614dSXin LI            GCC Farm Project
694cc68614dSXin LI            Trend Micro Zero Day Initiative
695cc68614dSXin LI
696cc68614dSXin LIRelease 2.4.2 Sun December 19 2021
697cc68614dSXin LI        Other changes:
698cc68614dSXin LI       #509 #510  Link againgst libm for function "isnan"
699cc68614dSXin LI       #513 #514  Include expat_config.h as early as possible
700cc68614dSXin LI            #498  Autotools: Include files with release archives:
701cc68614dSXin LI                    - buildconf.sh
702cc68614dSXin LI                    - fuzz/*.c
70371f0c44aSXin LI       #507 #519  Autotools: Sync CMake templates with CMake 3.20
704cc68614dSXin LI       #495 #524  CMake: MinGW: Fix pkg-config section "Libs" for
705cc68614dSXin LI                    - non-release build types (e.g. -DCMAKE_BUILD_TYPE=Debug)
706cc68614dSXin LI                    - multi-config CMake generators (e.g. Ninja Multi-Config)
707cc68614dSXin LI       #502 #503  docs: Document that function XML_GetBuffer may return NULL
708cc68614dSXin LI                    when asking for a buffer of 0 (zero) bytes size
709cc68614dSXin LI       #522 #523  docs: Fix return value docs for both
710cc68614dSXin LI                    XML_SetBillionLaughsAttackProtection* functions
711cc68614dSXin LI       #525 #526  Version info bumped from 9:1:8 to 9:2:8;
712cc68614dSXin LI                    see https://verbump.de/ for what these numbers do
713cc68614dSXin LI
714cc68614dSXin LI        Special thanks to:
7154543ef51SXin LI            Donghee Na
716cc68614dSXin LI            Joergen Ibsen
717cc68614dSXin LI            Kai Pastor
718cc68614dSXin LI
719cc68614dSXin LIRelease 2.4.1 Sun May 23 2021
720cc68614dSXin LI        Bug fixes:
721cc68614dSXin LI       #488 #490  Autotools: Fix installed header expat_config.h for multilib
722cc68614dSXin LI                    systems; regression introduced in 2.4.0 by pull request #486
723cc68614dSXin LI
724cc68614dSXin LI        Other changes:
725cc68614dSXin LI       #491 #492  Version info bumped from 9:0:8 to 9:1:8;
726cc68614dSXin LI                    see https://verbump.de/ for what these numbers do
727cc68614dSXin LI
728cc68614dSXin LI        Special thanks to:
729cc68614dSXin LI            Gentoo's QA check "multilib_check_headers"
730cc68614dSXin LI
731cc68614dSXin LIRelease 2.4.0 Sun May 23 2021
732cc68614dSXin LI        Security fixes:
733cc68614dSXin LI   #34 #466 #484  CVE-2013-0340/CWE-776 -- Protect against billion laughs attacks
734cc68614dSXin LI                    (denial-of-service; flavors targeting CPU time or RAM or both,
735cc68614dSXin LI                    leveraging general entities or parameter entities or both)
736cc68614dSXin LI                    by tracking and limiting the input amplification factor
737cc68614dSXin LI                    (<amplification> := (<direct> + <indirect>) / <direct>).
738cc68614dSXin LI                    By conservative default, amplification up to a factor of 100.0
739cc68614dSXin LI                    is tolerated and rejection only starts after 8 MiB of output bytes
740cc68614dSXin LI                    (=<direct> + <indirect>) have been processed.
741cc68614dSXin LI                    The fix adds the following to the API:
742cc68614dSXin LI                    - A new error code XML_ERROR_AMPLIFICATION_LIMIT_BREACH to
743cc68614dSXin LI                      signals this specific condition.
744cc68614dSXin LI                    - Two new API functions ..
745cc68614dSXin LI                      - XML_SetBillionLaughsAttackProtectionMaximumAmplification and
746cc68614dSXin LI                      - XML_SetBillionLaughsAttackProtectionActivationThreshold
747cc68614dSXin LI                      .. to further tighten billion laughs protection parameters
748cc68614dSXin LI                      when desired.  Please see file "doc/reference.html" for details.
749cc68614dSXin LI                      If you ever need to increase the defaults for non-attack XML
750cc68614dSXin LI                      payload, please file a bug report with libexpat.
751cc68614dSXin LI                    - Two new XML_FEATURE_* constants ..
752cc68614dSXin LI                      - that can be queried using the XML_GetFeatureList function, and
753cc68614dSXin LI                      - that are shown in "xmlwf -v" output.
754cc68614dSXin LI                    - Two new environment variable switches ..
755cc68614dSXin LI                      - EXPAT_ACCOUNTING_DEBUG=(0|1|2|3) and
756cc68614dSXin LI                      - EXPAT_ENTITY_DEBUG=(0|1)
757cc68614dSXin LI                      .. for runtime debugging of accounting and entity processing.
758cc68614dSXin LI                      Specific behavior of these values may change in the future.
759cc68614dSXin LI                    - Two new command line arguments "-a FACTOR" and "-b BYTES"
760cc68614dSXin LI                      for xmlwf to further tighten billion laughs protection
761cc68614dSXin LI                      parameters when desired.
762cc68614dSXin LI                      If you ever need to increase the defaults for non-attack XML
763cc68614dSXin LI                      payload, please file a bug report with libexpat.
764cc68614dSXin LI
765cc68614dSXin LI        Bug fixes:
766cc68614dSXin LI       #332 #470  For (non-default) compilation with -DEXPAT_MIN_SIZE=ON (CMake)
767cc68614dSXin LI                    or CPPFLAGS=-DXML_MIN_SIZE (GNU Autotools): Fix segfault
768cc68614dSXin LI                    for UTF-16 payloads containing CDATA sections.
769cc68614dSXin LI       #485 #486  Autotools: Fix generated CMake files for non-64bit and
770cc68614dSXin LI                    non-Linux platforms (e.g. macOS and MinGW in particular)
771cc68614dSXin LI                    that were introduced with release 2.3.0
772cc68614dSXin LI
773cc68614dSXin LI        Other changes:
774cc68614dSXin LI       #468 #469  xmlwf: Improve help output and the xmlwf man page
775cc68614dSXin LI            #463  xmlwf: Improve maintainability through some refactoring
776cc68614dSXin LI            #477  xmlwf: Fix man page DocBook validity
77771f0c44aSXin LI            #456  Autotools: Sync CMake templates with CMake 3.18
778cc68614dSXin LI       #458 #459  CMake: Support absolute paths for both CMAKE_INSTALL_LIBDIR
779cc68614dSXin LI                    and CMAKE_INSTALL_INCLUDEDIR
780cc68614dSXin LI       #471 #481  CMake: Add support for standard variable BUILD_SHARED_LIBS
781cc68614dSXin LI            #457  Unexpose symbol _INTERNAL_trim_to_complete_utf8_characters
782cc68614dSXin LI            #467  Resolve macro HAVE_EXPAT_CONFIG_H
783cc68614dSXin LI            #472  Delete unused legacy helper file "conftools/PrintPath"
784cc68614dSXin LI       #473 #483  Improve attribution
785cc68614dSXin LI  #464 #465 #477  doc/reference.html: Fix XHTML validity
786cc68614dSXin LI       #475 #478  doc/reference.html: Replace the 90s look by OK.css
787cc68614dSXin LI            #479  Version info bumped from 8:0:7 to 9:0:8
788cc68614dSXin LI                    due to addition of new symbols and error codes;
789cc68614dSXin LI                    see https://verbump.de/ for what these numbers do
790cc68614dSXin LI
791cc68614dSXin LI        Infrastructure:
792cc68614dSXin LI            #456  CI: Enable periodic runs
793cc68614dSXin LI            #457  CI: Start covering the list of exported symbols
794cc68614dSXin LI            #474  CI: Isolate coverage task
795cc68614dSXin LI       #476 #482  CI: Adapt to breaking changes in image "ubuntu-18.04"
796cc68614dSXin LI            #477  CI: Cover well-formedness and DocBook/XHTML validity
797cc68614dSXin LI                    of doc/reference.html and doc/xmlwf.xml
798cc68614dSXin LI
799cc68614dSXin LI        Special thanks to:
800cc68614dSXin LI            Dimitry Andric
801cc68614dSXin LI            Eero Helenius
802cc68614dSXin LI            Nick Wellnhofer
803cc68614dSXin LI            Rhodri James
804cc68614dSXin LI            Tomas Korbar
805cc68614dSXin LI            Yury Gribov
806cc68614dSXin LI                 and
807cc68614dSXin LI            Clang LeakSan
808cc68614dSXin LI            JetBrains
809cc68614dSXin LI            OSS-Fuzz
810cc68614dSXin LI
811cc68614dSXin LIRelease 2.3.0 Thu March 25 2021
812cc68614dSXin LI        Bug fixes:
813cc68614dSXin LI            #438  When calling XML_ParseBuffer without a prior successful call to
814cc68614dSXin LI                    XML_GetBuffer as a user, no longer trigger undefined behavior
815cc68614dSXin LI                    (by adding an integer to a NULL pointer) but rather return
816cc68614dSXin LI                    XML_STATUS_ERROR and set the error code to (new) code
817cc68614dSXin LI                    XML_ERROR_NO_BUFFER. Found by UBSan (UndefinedBehaviorSanitizer)
818cc68614dSXin LI                    of Clang 11 (but not Clang 9).
819cc68614dSXin LI            #444  xmlwf: Exit status 2 was used for both:
820cc68614dSXin LI                    - malformed input files (documented) and
821cc68614dSXin LI                    - invalid command-line arguments (undocumented).
822cc68614dSXin LI                    The case of invalid command-line arguments now
823cc68614dSXin LI                    has its own exit status 4, resolving the ambiguity.
824cc68614dSXin LI
825cc68614dSXin LI        Other changes:
826cc68614dSXin LI            #439  xmlwf: Add argument -k to allow continuing after
827cc68614dSXin LI                    non-fatal errors
828cc68614dSXin LI            #439  xmlwf: Add section about exit status to the -h help output
829cc68614dSXin LI  #422 #426 #447  Windows: Drop support for Visual Studio <=14.0/2015
830cc68614dSXin LI            #434  Windows: CMake: Detect unsupported Visual Studio at
831cc68614dSXin LI                    configure time (rather than at compile time)
832cc68614dSXin LI       #382 #428  testrunner: Make verbose mode (argument "-v") report
833cc68614dSXin LI                    about passed tests, and make default mode report about
834cc68614dSXin LI                    failures, as well.
835cc68614dSXin LI            #442  CMake: Call "enable_language(CXX)" prior to tinkering
836cc68614dSXin LI                    with CMAKE_CXX_* variables
837cc68614dSXin LI            #448  Document use of libexpat from a CMake-based project
838cc68614dSXin LI            #451  Autotools: Install CMake files as generated by CMake 3.19.6
839cc68614dSXin LI                    so that users with "find_package(expat [..] CONFIG [..])"
840cc68614dSXin LI                    are served on distributions that are *not* using the CMake
841cc68614dSXin LI                    build system inside for libexpat packaging
842cc68614dSXin LI       #436 #437  Autotools: Drop obsolescent macro AC_HEADER_STDC
843cc68614dSXin LI       #450 #452  Autotools: Resolve use of obsolete macro AC_CONFIG_HEADER
844cc68614dSXin LI            #441  Address compiler warnings
845cc68614dSXin LI            #443  Version info bumped from 7:12:6 to 8:0:7
846cc68614dSXin LI                    due to addition of error code XML_ERROR_NO_BUFFER
847cc68614dSXin LI                    (see https://verbump.de/ for what these numbers do)
848cc68614dSXin LI
849cc68614dSXin LI        Infrastructure:
850cc68614dSXin LI       #435 #446  Replace Travis CI by GitHub Actions
851cc68614dSXin LI
852cc68614dSXin LI        Special thanks to:
853cc68614dSXin LI            Alexander Richardson
854cc68614dSXin LI            Oleksandr Popovych
855cc68614dSXin LI            Thomas Beutlich
856cc68614dSXin LI            Tim Bray
857cc68614dSXin LI                 and
858cc68614dSXin LI            Clang LeakSan, Clang 11 UBSan and the Clang team
859cc68614dSXin LI
860cc68614dSXin LIRelease 2.2.10 Sat October 3 2020
861cc68614dSXin LI        Bug fixes:
862cc68614dSXin LI  #390 #395 #398  Fix undefined behavior during parsing caused by
863cc68614dSXin LI                    pointer arithmetic with NULL pointers
864cc68614dSXin LI       #404 #405  Fix reading uninitialized variable during parsing
865cc68614dSXin LI            #406  xmlwf: Add missing check for malloc NULL return
866cc68614dSXin LI
867cc68614dSXin LI        Other changes:
868cc68614dSXin LI            #396  Windows: Drop support for Visual Studio <=8.0/2005
869cc68614dSXin LI            #409  Windows: Add missing file "Changes" to the installer
870cc68614dSXin LI                    to fix compilation with CMake from installed sources
871cc68614dSXin LI            #403  xmlwf: Document exit codes in xmlwf manpage and
872cc68614dSXin LI                    exit with code 3 (rather than code 1) for output errors
873cc68614dSXin LI                    when used with "-d DIRECTORY"
874cc68614dSXin LI       #356 #359  MinGW: Provide declaration of rand_s for mingwrt <5.3.0
875cc68614dSXin LI       #383 #392  Autotools: Use -Werror while configure tests the compiler
876cc68614dSXin LI                    for supported compile flags to avoid false positives
877cc68614dSXin LI  #383 #393 #394  Autotools: Improve handling of user (C|CPP|CXX|LD)FLAGS,
878cc68614dSXin LI                    e.g. ensure that they have the last word over flags added
879cc68614dSXin LI                    while running ./configure
880cc68614dSXin LI            #360  CMake: Create libexpatw.{dll,so} and expatw.pc (with emphasis
881cc68614dSXin LI                    on suffix "w") with -DEXPAT_CHAR_TYPE=(ushort|wchar_t)
882cc68614dSXin LI            #360  CMake: Detect and deny unsupported build combinations
883cc68614dSXin LI                    involving -DEXPAT_CHAR_TYPE=(ushort|wchar_t)
884cc68614dSXin LI            #360  CMake: Install pre-compiled shipped xmlwf.1 manpage in case
885cc68614dSXin LI                    of -DEXPAT_BUILD_DOCS=OFF
886cc68614dSXin LI  #375 #380 #419  CMake: Fix use of Expat by means of add_subdirectory
887cc68614dSXin LI       #407 #408  CMake: Keep expat target name constant at "expat"
888cc68614dSXin LI                    (i.e. refrain from using the target name to control
889cc68614dSXin LI                    build artifact filenames)
890cc68614dSXin LI            #385  CMake: Fix compilation with -DEXPAT_SHARED_LIBS=OFF for
891cc68614dSXin LI                    Windows
892cc68614dSXin LI                  CMake: Expose man page compilation as target "xmlwf-manpage"
893cc68614dSXin LI       #413 #414  CMake: Introduce option EXPAT_BUILD_PKGCONFIG
894cc68614dSXin LI                    to control generation of pkg-config file "expat.pc"
895cc68614dSXin LI            #424  CMake: Add minimalistic support for building binary packages
896cc68614dSXin LI                    with CMake target "package"; based on CPack
897cc68614dSXin LI            #366  CMake: Add option -DEXPAT_OSSFUZZ_BUILD=(ON|OFF) with
898cc68614dSXin LI                    default OFF to build fuzzer code against OSS-Fuzz and
899cc68614dSXin LI                    related environment variable LIB_FUZZING_ENGINE
900cc68614dSXin LI            #354  Fix testsuite for -DEXPAT_DTD=OFF and -DEXPAT_NS=OFF, each
901cc68614dSXin LI    #354 #355 ..
902cc68614dSXin LI       #356 #412  Address compiler warnings
903cc68614dSXin LI       #368 #369  Address pngcheck warnings with doc/*.png images
904cc68614dSXin LI            #425  Version info bumped from 7:11:6 to 7:12:6
905cc68614dSXin LI
906cc68614dSXin LI        Special thanks to:
907cc68614dSXin LI            asavah
908cc68614dSXin LI            Ben Wagner
909cc68614dSXin LI            Bhargava Shastry
910cc68614dSXin LI            Frank Landgraf
911cc68614dSXin LI            Jeffrey Walton
912cc68614dSXin LI            Joe Orton
913cc68614dSXin LI            Kleber Tarcísio
914cc68614dSXin LI            Ma Lin
915cc68614dSXin LI            Maciej Sroczyński
916cc68614dSXin LI            Mohammed Khajapasha
917cc68614dSXin LI            Vadim Zeitlin
918cc68614dSXin LI                 and
919cc68614dSXin LI            Cppcheck 2.0 and the Cppcheck team
920cc68614dSXin LI
921cc68614dSXin LIRelease 2.2.9 Wed September 25 2019
9226b2c1e49SXin LI        Other changes:
9236b2c1e49SXin LI                  examples: Drop executable bits from elements.c
9246b2c1e49SXin LI            #349  Windows: Change the name of the Windows DLLs from expat*.dll
9256b2c1e49SXin LI                    to libexpat*.dll once more (regression from 2.2.8, first
9266b2c1e49SXin LI                    fixed in 1.95.3, issue #61 on SourceForge today,
9276b2c1e49SXin LI                    was issue #432456 back then); needs a fix due
9286b2c1e49SXin LI                    case-insensitive file systems on Windows and the fact that
9296b2c1e49SXin LI                    Perl's XML::Parser::Expat compiles into Expat.dll.
9306b2c1e49SXin LI            #347  Windows: Only define _CRT_RAND_S if not defined
9316b2c1e49SXin LI                  Version info bumped from 7:10:6 to 7:11:6
9326b2c1e49SXin LI
9336b2c1e49SXin LI        Special thanks to:
9346b2c1e49SXin LI            Ben Wagner
9356b2c1e49SXin LI
936cc68614dSXin LIRelease 2.2.8 Fri September 13 2019
9376b2c1e49SXin LI        Security fixes:
9386b2c1e49SXin LI       #317 #318  CVE-2019-15903 -- Fix heap overflow triggered by
9396b2c1e49SXin LI                    XML_GetCurrentLineNumber (or XML_GetCurrentColumnNumber),
9406b2c1e49SXin LI                    and deny internal entities closing the doctype;
9416b2c1e49SXin LI                    fixed in commit c20b758c332d9a13afbbb276d30db1d183a85d43
9426b2c1e49SXin LI
9436b2c1e49SXin LI        Bug fixes:
9446b2c1e49SXin LI            #240  Fix cases where XML_StopParser did not have any effect
9456b2c1e49SXin LI                    when called from inside of an end element handler
9466b2c1e49SXin LI            #341  xmlwf: Fix exit code for operation without "-d DIRECTORY";
9476b2c1e49SXin LI                    previously, only "-d DIRECTORY" would give you a proper
9486b2c1e49SXin LI                    exit code:
9496b2c1e49SXin LI                      # xmlwf -d . <<<'<not well-formed>' 2>/dev/null ; echo $?
9506b2c1e49SXin LI                      2
9516b2c1e49SXin LI                      # xmlwf <<<'<not well-formed>' 2>/dev/null ; echo $?
9526b2c1e49SXin LI                      0
9536b2c1e49SXin LI                    Now both cases return exit code 2.
9546b2c1e49SXin LI
9556b2c1e49SXin LI        Other changes:
9566b2c1e49SXin LI       #299 #302  Windows: Replace LoadLibrary hack to access
9576b2c1e49SXin LI                    unofficial API function SystemFunction036 (RtlGenRandom)
9586b2c1e49SXin LI                    by using official API function rand_s (needs WinXP+)
9596b2c1e49SXin LI            #325  Windows: Drop support for Visual Studio <=7.1/2003
9606b2c1e49SXin LI                    and document supported compilers in README.md
9616b2c1e49SXin LI            #286  Windows: Remove COM code from xmlwf; in case it turns
9626b2c1e49SXin LI                    out needed later, there will be a dedicated repository
9636b2c1e49SXin LI                    below https://github.com/libexpat/ for that code
9646b2c1e49SXin LI            #322  Windows: Remove explicit MSVC solution and project files.
9656b2c1e49SXin LI                    You can generate Visual Studio solution files through
9666b2c1e49SXin LI                    CMake, e.g.: cmake -G"Visual Studio 15 2017" .
9676b2c1e49SXin LI            #338  xmlwf: Make "xmlwf -h" help output more friendly
9686b2c1e49SXin LI            #339  examples: Improve elements.c
9696b2c1e49SXin LI       #244 #264  Autotools: Add argument --enable-xml-attr-info
9706b2c1e49SXin LI       #239 #301  Autotools: Add arguments
9716b2c1e49SXin LI                    --with-getrandom
9726b2c1e49SXin LI                    --without-getrandom
9736b2c1e49SXin LI                    --with-sys-getrandom
9746b2c1e49SXin LI                    --without-sys-getrandom
9756b2c1e49SXin LI       #312 #343  Autotools: Fix linking issues with "./configure LD=clang"
9766b2c1e49SXin LI                  Autotools: Fix "make run-xmltest" for out-of-source builds
9776b2c1e49SXin LI       #329 #336  CMake: Pull all options from Expat <=2.2.7 into namespace
9786b2c1e49SXin LI                    prefix EXPAT_ with the exception of DOCBOOK_TO_MAN:
9796b2c1e49SXin LI                    - BUILD_doc            -> EXPAT_BUILD_DOCS (plural)
9806b2c1e49SXin LI                    - BUILD_examples       -> EXPAT_BUILD_EXAMPLES
9816b2c1e49SXin LI                    - BUILD_shared         -> EXPAT_SHARED_LIBS
9826b2c1e49SXin LI                    - BUILD_tests          -> EXPAT_BUILD_TESTS
9836b2c1e49SXin LI                    - BUILD_tools          -> EXPAT_BUILD_TOOLS
9846b2c1e49SXin LI                    - DOCBOOK_TO_MAN       -> DOCBOOK_TO_MAN (unchanged)
9856b2c1e49SXin LI                    - INSTALL              -> EXPAT_ENABLE_INSTALL
9866b2c1e49SXin LI                    - MSVC_USE_STATIC_CRT  -> EXPAT_MSVC_STATIC_CRT
9876b2c1e49SXin LI                    - USE_libbsd           -> EXPAT_WITH_LIBBSD
9886b2c1e49SXin LI                    - WARNINGS_AS_ERRORS   -> EXPAT_WARNINGS_AS_ERRORS
9896b2c1e49SXin LI                    - XML_CONTEXT_BYTES    -> EXPAT_CONTEXT_BYTES
9906b2c1e49SXin LI                    - XML_DEV_URANDOM      -> EXPAT_DEV_URANDOM
9916b2c1e49SXin LI                    - XML_DTD              -> EXPAT_DTD
9926b2c1e49SXin LI                    - XML_NS               -> EXPAT_NS
9936b2c1e49SXin LI                    - XML_UNICODE          -> EXPAT_CHAR_TYPE=ushort (!)
9946b2c1e49SXin LI                    - XML_UNICODE_WCHAR_T  -> EXPAT_CHAR_TYPE=wchar_t (!)
9956b2c1e49SXin LI       #244 #264  CMake: Add argument -DEXPAT_ATTR_INFO=(ON|OFF),
9966b2c1e49SXin LI                    default OFF
9976b2c1e49SXin LI            #326  CMake: Add argument -DEXPAT_LARGE_SIZE=(ON|OFF),
9986b2c1e49SXin LI                    default OFF
9996b2c1e49SXin LI            #328  CMake: Add argument -DEXPAT_MIN_SIZE=(ON|OFF),
10006b2c1e49SXin LI                    default OFF
10016b2c1e49SXin LI       #239 #277  CMake: Add arguments
10026b2c1e49SXin LI                    -DEXPAT_WITH_GETRANDOM=(ON|OFF|AUTO), default AUTO
10036b2c1e49SXin LI                    -DEXPAT_WITH_SYS_GETRANDOM=(ON|OFF|AUTO), default AUTO
10046b2c1e49SXin LI            #326  CMake: Install expat_config.h to include directory
10056b2c1e49SXin LI            #326  CMake: Generate and install configuration files for
10066b2c1e49SXin LI                    future find_package(expat [..] CONFIG [..])
10076b2c1e49SXin LI                  CMake: Now produces a summary of applied configuration
10086b2c1e49SXin LI                  CMake: Require C++ compiler only when tests are enabled
10096b2c1e49SXin LI            #330  CMake: Fix compilation for 16bit character types,
10106b2c1e49SXin LI                    i.e. ex -DXML_UNICODE=ON (and ex -DXML_UNICODE_WCHAR_T=ON)
10116b2c1e49SXin LI            #265  CMake: Fix linking with MinGW
10126b2c1e49SXin LI            #330  CMake: Add full support for MinGW; to enable, use
10136b2c1e49SXin LI                    -DCMAKE_TOOLCHAIN_FILE=[expat]/cmake/mingw-toolchain.cmake
10146b2c1e49SXin LI            #330  CMake: Port "make run-xmltest" from GNU Autotools to CMake
10156b2c1e49SXin LI            #316  CMake: Windows: Make binary postfix match MSVC
10166b2c1e49SXin LI                    Old: expat[d].lib
10176b2c1e49SXin LI                    New: expat[w][d][MD|MT].lib
10186b2c1e49SXin LI                  CMake: Migrate files from Windows to Unix line endings
10196b2c1e49SXin LI            #308  CMake: Integrate OSS-Fuzz fuzzers, option
10206b2c1e49SXin LI                    -DEXPAT_BUILD_FUZZERS=(ON|OFF), default OFF
10216b2c1e49SXin LI             #14  Drop an OpenVMS support leftover
10226b2c1e49SXin LI    #235 #268 ..
10236b2c1e49SXin LI    #270 #310 ..
10246b2c1e49SXin LI  #313 #331 #333  Address compiler warnings
10256b2c1e49SXin LI    #282 #283 ..
10266b2c1e49SXin LI       #284 #285  Address cppcheck warnings
10276b2c1e49SXin LI       #294 #295  Address Clang Static Analyzer warnings
10286b2c1e49SXin LI        #24 #293  Mass-apply clang-format 9 (and ensure conformance during CI)
10296b2c1e49SXin LI                  Version info bumped from 7:9:6 to 7:10:6
10306b2c1e49SXin LI
10316b2c1e49SXin LI        Special thanks to:
10326b2c1e49SXin LI            David Loffredo
10336b2c1e49SXin LI            Joonun Jang
10346b2c1e49SXin LI            Kishore Kunche
10356b2c1e49SXin LI            Marco Maggi
10366b2c1e49SXin LI            Mitch Phillips
1037cc68614dSXin LI            Mohammed Khajapasha
10386b2c1e49SXin LI            Rolf Ade
10396b2c1e49SXin LI            xantares
10406b2c1e49SXin LI            Zhongyuan Zhou
10416b2c1e49SXin LI
10426b2c1e49SXin LIRelease 2.2.7 Wed June 19 2019
10436b2c1e49SXin LI        Security fixes:
10446b2c1e49SXin LI       #186 #262  CVE-2018-20843 -- Fix extraction of namespace prefixes from
10456b2c1e49SXin LI                    XML names; XML names with multiple colons could end up in
10466b2c1e49SXin LI                    the wrong namespace, and take a high amount of RAM and CPU
10476b2c1e49SXin LI                    resources while processing, opening the door to
10486b2c1e49SXin LI                    use for denial-of-service attacks
10496b2c1e49SXin LI
10506b2c1e49SXin LI        Other changes:
10516b2c1e49SXin LI       #195 #197  Autotools/CMake: Utilize -fvisibility=hidden to stop
10526b2c1e49SXin LI                    exporting non-API symbols
10536b2c1e49SXin LI            #227  Autotools: Add --without-examples and --without-tests
10546b2c1e49SXin LI            #228  Autotools: Modernize configure.ac
10556b2c1e49SXin LI       #245 #246  Autotools: Fix check for -fvisibility=hidden for Clang
10566b2c1e49SXin LI       #247 #248  Autotools: Fix compilation for lack of docbook2x-man
10576b2c1e49SXin LI       #236 #258  Autotools: Produce .tar.{gz,lz,xz} release archives
10586b2c1e49SXin LI            #212  CMake: Make libdir of pkgconfig expat.pc support multilib
10596b2c1e49SXin LI       #158 #263  CMake: Build man page in PROJECT_BINARY_DIR not _SOURCE_DIR
10606b2c1e49SXin LI            #219  Remove fallback to bcopy, assume that memmove(3) exists
10616b2c1e49SXin LI            #257  Use portable "/usr/bin/env bash" shebang (e.g. for OpenBSD)
10626b2c1e49SXin LI            #243  Windows: Fix syntax of .def module definition files
10636b2c1e49SXin LI                  Version info bumped from 7:8:6 to 7:9:6
10646b2c1e49SXin LI
10656b2c1e49SXin LI        Special thanks to:
10666b2c1e49SXin LI            Benjamin Peterson
10676b2c1e49SXin LI            Caolán McNamara
10686b2c1e49SXin LI            Hanno Böck
10696b2c1e49SXin LI            KangLin
10706b2c1e49SXin LI            Kishore Kunche
10716b2c1e49SXin LI            Marco Maggi
10726b2c1e49SXin LI            Rhodri James
10736b2c1e49SXin LI            Sebastian Dröge
10746b2c1e49SXin LI            userwithuid
10756b2c1e49SXin LI            Yury Gribov
10766b2c1e49SXin LI
10770a48773fSEric van GyzenRelease 2.2.6 Sun August 12 2018
10780a48773fSEric van Gyzen        Bug fixes:
10790a48773fSEric van Gyzen       #170 #206  Avoid doing arithmetic with NULL pointers in XML_GetBuffer
10800a48773fSEric van Gyzen       #204 #205  Fix 2.2.5 regression with suspend-resume while parsing
10810a48773fSEric van Gyzen                    a document like '<root/>'
10820a48773fSEric van Gyzen
10830a48773fSEric van Gyzen        Other changes:
10840a48773fSEric van Gyzen       #165 #168  Autotools: Fix docbook-related configure syntax error
10850a48773fSEric van Gyzen            #166  Autotools: Avoid grep option `-q` for Solaris
10860a48773fSEric van Gyzen            #167  Autotools: Support
10870a48773fSEric van Gyzen                    ./configure DOCBOOK_TO_MAN="xmlto man --skip-validation"
10880a48773fSEric van Gyzen       #159 #167  Autotools: Support DOCBOOK_TO_MAN command which produces
10890a48773fSEric van Gyzen                    xmlwf.1 rather than XMLWF.1; also covers case insensitive
10900a48773fSEric van Gyzen                    file systems
10910a48773fSEric van Gyzen            #181  Autotools: Drop -rpath option passed to libtool
10920a48773fSEric van Gyzen            #188  Autotools: Detect and deny SGML docbook2man as ours is XML
10930a48773fSEric van Gyzen            #188  Autotools/CMake: Support command db2x_docbook2man as well
10940a48773fSEric van Gyzen            #174  CMake: Introduce option WARNINGS_AS_ERRORS, defaults to OFF
10950a48773fSEric van Gyzen       #184 #185  CMake: Introduce option MSVC_USE_STATIC_CRT, defaults to OFF
10960a48773fSEric van Gyzen       #207 #208  CMake: Introduce option XML_UNICODE and XML_UNICODE_WCHAR_T,
10970a48773fSEric van Gyzen                    both defaulting to OFF
10980a48773fSEric van Gyzen            #175  CMake: Prefer check_symbol_exists over check_function_exists
10990a48773fSEric van Gyzen            #176  CMake: Create the same pkg-config file as with GNU Autotools
11000a48773fSEric van Gyzen       #178 #179  CMake: Use GNUInstallDirs module to set proper defaults for
11010a48773fSEric van Gyzen                    install directories
11020a48773fSEric van Gyzen            #208  CMake: Utilize expat_config.h.cmake for XML_DEV_URANDOM
11030a48773fSEric van Gyzen            #180  Windows: Fix compilation of test suite for Visual Studio 2008
11040a48773fSEric van Gyzen  #131 #173 #202  Address compiler warnings
11050a48773fSEric van Gyzen  #187 #190 #200  Fix miscellaneous typos
11060a48773fSEric van Gyzen                  Version info bumped from 7:7:6 to 7:8:6
11070a48773fSEric van Gyzen
11080a48773fSEric van Gyzen        Special thanks to:
11090a48773fSEric van Gyzen            Anton Maklakov
11100a48773fSEric van Gyzen            Benjamin Peterson
11110a48773fSEric van Gyzen            Brad King
11120a48773fSEric van Gyzen            Franek Korta
11130a48773fSEric van Gyzen            Frank Rast
11140a48773fSEric van Gyzen            Joe Orton
11150a48773fSEric van Gyzen            luzpaz
11160a48773fSEric van Gyzen            Pedro Vicente
11170a48773fSEric van Gyzen            Rainer Jung
11180a48773fSEric van Gyzen            Rhodri James
11190a48773fSEric van Gyzen            Rolf Ade
11200a48773fSEric van Gyzen            Rolf Eike Beer
11210a48773fSEric van Gyzen            Thomas Beutlich
11220a48773fSEric van Gyzen            Tomasz Kłoczko
11230a48773fSEric van Gyzen
11240a48773fSEric van GyzenRelease 2.2.5 Tue October 31 2017
11250a48773fSEric van Gyzen        Bug fixes:
11260a48773fSEric van Gyzen              #8  If the parser runs out of memory, make sure its internal
11270a48773fSEric van Gyzen                    state reflects the memory it actually has, not the memory
11280a48773fSEric van Gyzen                    it wanted to have.
11290a48773fSEric van Gyzen             #11  The default handler wasn't being called when it should for
11300a48773fSEric van Gyzen                    a SYSTEM or PUBLIC doctype if an entity declaration handler
11310a48773fSEric van Gyzen                    was registered.
11320a48773fSEric van Gyzen       #137 #138  Fix a case of mistakenly reported parsing success where
11330a48773fSEric van Gyzen                    XML_StopParser was called from an element handler
11340a48773fSEric van Gyzen            #162  Function XML_ErrorString was returning NULL rather than
11350a48773fSEric van Gyzen                    a message for code XML_ERROR_INVALID_ARGUMENT
11360a48773fSEric van Gyzen                    introduced with release 2.2.1
11370a48773fSEric van Gyzen
11380a48773fSEric van Gyzen        Other changes:
11390a48773fSEric van Gyzen            #106  xmlwf: Add argument -N adding notation declarations
11400a48773fSEric van Gyzen        #75 #106  Test suite: Resolve expected failure cases where xmlwf
11410a48773fSEric van Gyzen                    output was incomplete
11420a48773fSEric van Gyzen            #127  Windows: Fix test suite compilation
11430a48773fSEric van Gyzen       #126 #127  Windows: Fix compilation for Visual Studio 2012
11440a48773fSEric van Gyzen                  Windows: Upgrade shipped project files to Visual Studio 2017
11450a48773fSEric van Gyzen        #33 #132  tests: Mass-fix compilation for XML_UNICODE_WCHAR_T
11460a48773fSEric van Gyzen            #129  examples: Fix compilation for XML_UNICODE_WCHAR_T
11470a48773fSEric van Gyzen            #130  benchmark: Fix compilation for XML_UNICODE_WCHAR_T
11480a48773fSEric van Gyzen            #144  xmlwf: Fix compilation for XML_UNICODE_WCHAR_T; still needs
11490a48773fSEric van Gyzen                    Windows or MinGW for 2-byte wchar_t
11500a48773fSEric van Gyzen              #9  Address two Clang Static Analyzer false positives
11510a48773fSEric van Gyzen             #59  Resolve troublesome macros hiding parser struct membership
11520a48773fSEric van Gyzen                    and dereferencing that pointer
11530a48773fSEric van Gyzen              #6  Resolve superfluous internal malloc/realloc switch
11540a48773fSEric van Gyzen       #153 #155  Improve docbook2x-man detection
11550a48773fSEric van Gyzen            #160  Undefine NDEBUG in the test suite (rather than rejecting it)
11560a48773fSEric van Gyzen            #161  Address compiler warnings
11570a48773fSEric van Gyzen                  Version info bumped from 7:6:6 to 7:7:6
11580a48773fSEric van Gyzen
11590a48773fSEric van Gyzen        Special thanks to:
11600a48773fSEric van Gyzen            Benbuck Nason
11610a48773fSEric van Gyzen            Hans Wennborg
11620a48773fSEric van Gyzen            José Gutiérrez de la Concha
11630a48773fSEric van Gyzen            Pedro Monreal Gonzalez
11640a48773fSEric van Gyzen            Rhodri James
11650a48773fSEric van Gyzen            Rolf Ade
11660a48773fSEric van Gyzen            Stephen Groat
11670a48773fSEric van Gyzen                 and
11680a48773fSEric van Gyzen            Core Infrastructure Initiative
11690a48773fSEric van Gyzen
11700a48773fSEric van GyzenRelease 2.2.4 Sat August 19 2017
11710a48773fSEric van Gyzen        Bug fixes:
11720a48773fSEric van Gyzen            #115  Fix copying of partial characters for UTF-8 input
11730a48773fSEric van Gyzen
11740a48773fSEric van Gyzen        Other changes:
11750a48773fSEric van Gyzen            #109  Fix "make check" for non-x86 architectures that default
11760a48773fSEric van Gyzen                    to unsigned type char (-128..127 rather than 0..255)
11770a48773fSEric van Gyzen            #109  coverage.sh: Cover -funsigned-char
11780a48773fSEric van Gyzen                  Autotools: Introduce --without-xmlwf argument
11790a48773fSEric van Gyzen             #65  Autotools: Replace handwritten Makefile with GNU Automake
11800a48773fSEric van Gyzen             #43  CMake: Auto-detect high quality entropy extractors, add new
11810a48773fSEric van Gyzen                    option USE_libbsd=ON to use arc4random_buf of libbsd
11820a48773fSEric van Gyzen             #74  CMake: Add -fno-strict-aliasing only where supported
11830a48773fSEric van Gyzen            #114  CMake: Always honor manually set BUILD_* options
11840a48773fSEric van Gyzen            #114  CMake: Compile man page if docbook2x-man is available, only
11850a48773fSEric van Gyzen            #117  Include file tests/xmltest.log.expected in source tarball
11860a48773fSEric van Gyzen                    (required for "make run-xmltest")
11870a48773fSEric van Gyzen            #117  Include (existing) Visual Studio 2013 files in source tarball
11880a48773fSEric van Gyzen                  Improve test suite error output
11890a48773fSEric van Gyzen            #111  Fix some typos in documentation
11900a48773fSEric van Gyzen                  Version info bumped from 7:5:6 to 7:6:6
11910a48773fSEric van Gyzen
11920a48773fSEric van Gyzen        Special thanks to:
11930a48773fSEric van Gyzen            Jakub Wilk
11940a48773fSEric van Gyzen            Joe Orton
11950a48773fSEric van Gyzen            Lin Tian
11960a48773fSEric van Gyzen            Rolf Eike Beer
11970a48773fSEric van Gyzen
11980a48773fSEric van GyzenRelease 2.2.3 Wed August 2 2017
11990a48773fSEric van Gyzen        Security fixes:
12000a48773fSEric van Gyzen             #82  CVE-2017-11742 -- Windows: Fix DLL hijacking vulnerability
12010a48773fSEric van Gyzen                    using Steve Holme's LoadLibrary wrapper for/of cURL
12020a48773fSEric van Gyzen
12030a48773fSEric van Gyzen        Bug fixes:
12040a48773fSEric van Gyzen             #85  Fix a dangling pointer issue related to realloc
12050a48773fSEric van Gyzen
12060a48773fSEric van Gyzen        Other changes:
12070a48773fSEric van Gyzen                  Increase code coverage
12080a48773fSEric van Gyzen             #91  Linux: Allow getrandom to fail if nonblocking pool has not
12090a48773fSEric van Gyzen                    yet been initialized and read /dev/urandom then, instead.
12100a48773fSEric van Gyzen                    This is in line with what recent Python does.
12110a48773fSEric van Gyzen             #81  Pre-10.7/Lion macOS: Support entropy from arc4random
12120a48773fSEric van Gyzen             #86  Check that a UTF-16 encoding in an XML declaration has the
12130a48773fSEric van Gyzen                    right endianness
12140a48773fSEric van Gyzen        #4 #5 #7  Recover correctly when some reallocations fail
12150a48773fSEric van Gyzen                  Repair "./configure && make" for systems without any
12160a48773fSEric van Gyzen                    provider of high quality entropy
12170a48773fSEric van Gyzen                    and try reading /dev/urandom on those
12180a48773fSEric van Gyzen                  Ensure that user-defined character encodings have converter
12190a48773fSEric van Gyzen                    functions when they are needed
12200a48773fSEric van Gyzen                  Fix mis-leading description of argument -c in xmlwf.1
12210a48773fSEric van Gyzen                  Rely on macro HAVE_ARC4RANDOM_BUF (rather than __CloudABI__)
12220a48773fSEric van Gyzen                    for CloudABI
12230a48773fSEric van Gyzen            #100  Fix use of SIPHASH_MAIN in siphash.h
12240a48773fSEric van Gyzen             #23  Test suite: Fix memory leaks
12250a48773fSEric van Gyzen                  Version info bumped from 7:4:6 to 7:5:6
12260a48773fSEric van Gyzen
12270a48773fSEric van Gyzen        Special thanks to:
12280a48773fSEric van Gyzen            Chanho Park
12290a48773fSEric van Gyzen            Joe Orton
12300a48773fSEric van Gyzen            Pascal Cuoq
12310a48773fSEric van Gyzen            Rhodri James
12320a48773fSEric van Gyzen            Simon McVittie
12330a48773fSEric van Gyzen            Vadim Zeitlin
12340a48773fSEric van Gyzen            Viktor Szakats
12350a48773fSEric van Gyzen                 and
12360a48773fSEric van Gyzen            Core Infrastructure Initiative
12370a48773fSEric van Gyzen
12380a48773fSEric van GyzenRelease 2.2.2 Wed July 12 2017
12390a48773fSEric van Gyzen        Security fixes:
12400a48773fSEric van Gyzen             #43  Protect against compilation without any source of high
12410a48773fSEric van Gyzen                    quality entropy enabled, e.g. with CMake build system;
12420a48773fSEric van Gyzen                    commit ff0207e6076e9828e536b8d9cd45c9c92069b895
12430a48773fSEric van Gyzen             #60  Windows with _UNICODE:
12440a48773fSEric van Gyzen                    Unintended use of LoadLibraryW with a non-wide string
12450a48773fSEric van Gyzen                    resulted in failure to load advapi32.dll and degradation
12460a48773fSEric van Gyzen                    in quality of used entropy when compiled with _UNICODE for
12470a48773fSEric van Gyzen                    Windows; you can launch existing binaries with
12480a48773fSEric van Gyzen                    EXPAT_ENTROPY_DEBUG=1 in the environment to inspect the
12490a48773fSEric van Gyzen                    quality of entropy used during runtime; commits
12500a48773fSEric van Gyzen                    * 95b95032f907ef1cd17ee7a9a1768010a825d61d
12510a48773fSEric van Gyzen                    * 73a5a2e9c081f49f2d775cf7ced864158b68dc80
12520a48773fSEric van Gyzen   [MOX-006]      Fix non-NULL parser parameter validation in XML_Parse;
12530a48773fSEric van Gyzen                    resulted in NULL dereference, previously;
12540a48773fSEric van Gyzen                    commit ac256dafdffc9622ab0dc2c62fcecb0dfcfa71fe
12550a48773fSEric van Gyzen
12560a48773fSEric van Gyzen        Bug fixes:
12570a48773fSEric van Gyzen             #69  Fix improper use of unsigned long long integer literals
12580a48773fSEric van Gyzen
12590a48773fSEric van Gyzen        Other changes:
12600a48773fSEric van Gyzen             #73  Start requiring a C99 compiler
12610a48773fSEric van Gyzen             #49  Fix "==" Bashism in configure script
12620a48773fSEric van Gyzen             #50  Fix too eager getrandom detection for Debian GNU/kFreeBSD
12630a48773fSEric van Gyzen             #52    and macOS
12640a48773fSEric van Gyzen             #51  Address lack of stdint.h in Visual Studio 2003 to 2008
12650a48773fSEric van Gyzen             #58  Address compile warnings
12660a48773fSEric van Gyzen             #68  Fix "./buildconf.sh && ./configure" for some versions
12670a48773fSEric van Gyzen                    of Dash for /bin/sh
12680a48773fSEric van Gyzen             #72  CMake: Ease use of Expat in context of a parent project
12690a48773fSEric van Gyzen                    with multiple CMakeLists.txt files
12700a48773fSEric van Gyzen             #72  CMake: Resolve mistaken executable permissions
12710a48773fSEric van Gyzen             #76  Address compile warning with -DNDEBUG (not recommended!)
12720a48773fSEric van Gyzen             #77  Address compile warning about macro redefinition
12730a48773fSEric van Gyzen
12740a48773fSEric van Gyzen        Special thanks to:
12750a48773fSEric van Gyzen            Alexander Bluhm
12760a48773fSEric van Gyzen            Ben Boeckel
12770a48773fSEric van Gyzen            Cătălin Răceanu
12780a48773fSEric van Gyzen            Kerin Millar
12790a48773fSEric van Gyzen            László Böszörményi
12800a48773fSEric van Gyzen            S. P. Zeidler
12810a48773fSEric van Gyzen            Segev Finer
12820a48773fSEric van Gyzen            Václav Slavík
12830a48773fSEric van Gyzen            Victor Stinner
12840a48773fSEric van Gyzen            Viktor Szakats
12850a48773fSEric van Gyzen                 and
12860a48773fSEric van Gyzen            Radically Open Security
12870a48773fSEric van Gyzen
12880a48773fSEric van GyzenRelease 2.2.1 Sat June 17 2017
12890a48773fSEric van Gyzen        Security fixes:
12900a48773fSEric van Gyzen                  CVE-2017-9233 -- External entity infinite loop DoS
12910a48773fSEric van Gyzen                    Details: https://libexpat.github.io/doc/cve-2017-9233/
12920a48773fSEric van Gyzen                    Commit c4bf96bb51dd2a1b0e185374362ee136fe2c9d7f
12930a48773fSEric van Gyzen   [MOX-002]      CVE-2016-9063 -- Detect integer overflow; commit
12940a48773fSEric van Gyzen                    d4f735b88d9932bd5039df2335eefdd0723dbe20
12950a48773fSEric van Gyzen                    (Fixed version of existing downstream patches!)
12960a48773fSEric van Gyzen   (SF.net) #539  Fix regression from fix to CVE-2016-0718 cutting off
12970a48773fSEric van Gyzen                    longer tag names; commits
12980a48773fSEric van Gyzen                    * 896b6c1fd3b842f377d1b62135dccf0a579cf65d
12990a48773fSEric van Gyzen                    * af507cef2c93cb8d40062a0abe43a4f4e9158fb2
13000a48773fSEric van Gyzen             #16    * 0dbbf43fdb20f593ddf4fa1ff67288000dd4a7fd
13010a48773fSEric van Gyzen             #25  More integer overflow detection (function poolGrow); commits
13020a48773fSEric van Gyzen                    * 810b74e4703dcfdd8f404e3cb177d44684775143
13030a48773fSEric van Gyzen                    * 44178553f3539ce69d34abee77a05e879a7982ac
13040a48773fSEric van Gyzen   [MOX-002]      Detect overflow from len=INT_MAX call to XML_Parse; commits
13050a48773fSEric van Gyzen                    * 4be2cb5afcc018d996f34bbbce6374b7befad47f
13060a48773fSEric van Gyzen                    * 7e5b71b748491b6e459e5c9a1d090820f94544d8
13070a48773fSEric van Gyzen   [MOX-005] #30  Use high quality entropy for hash initialization:
13080a48773fSEric van Gyzen                    * arc4random_buf on BSD, systems with libbsd
13090a48773fSEric van Gyzen                      (when configured with --with-libbsd), CloudABI
13100a48773fSEric van Gyzen                    * RtlGenRandom on Windows XP / Server 2003 and later
13110a48773fSEric van Gyzen                    * getrandom on Linux 3.17+
13120a48773fSEric van Gyzen                    In a way, that's still part of CVE-2016-5300.
13130a48773fSEric van Gyzen                    https://github.com/libexpat/libexpat/pull/30/commits
13140a48773fSEric van Gyzen   [MOX-005]      For the low quality entropy extraction fallback code,
13150a48773fSEric van Gyzen                    the parser instance address can no longer leak, commit
13160a48773fSEric van Gyzen                    04ad658bd3079dd15cb60fc67087900f0ff4b083
13170a48773fSEric van Gyzen   [MOX-003]      Prevent use of uninitialised variable; commit
13180a48773fSEric van Gyzen   [MOX-004]        a4dc944f37b664a3ca7199c624a98ee37babdb4b
13190a48773fSEric van Gyzen                  Add missing parameter validation to public API functions
13200a48773fSEric van Gyzen                    and dedicated error code XML_ERROR_INVALID_ARGUMENT:
13210a48773fSEric van Gyzen   [MOX-006]        * NULL checks; commits
13220a48773fSEric van Gyzen                      * d37f74b2b7149a3a95a680c4c4cd2a451a51d60a (merge/many)
13230a48773fSEric van Gyzen                      * 9ed727064b675b7180c98cb3d4f75efba6966681
13240a48773fSEric van Gyzen                      * 6a747c837c50114dfa413994e07c0ba477be4534
13250a48773fSEric van Gyzen                    * Negative length (XML_Parse); commit
13260a48773fSEric van Gyzen   [MOX-002]          70db8d2538a10f4c022655d6895e4c3e78692e7f
13270a48773fSEric van Gyzen   [MOX-001] #35  Change hash algorithm to William Ahern's version of SipHash
13280a48773fSEric van Gyzen                    to go further with fixing CVE-2012-0876.
13290a48773fSEric van Gyzen                    https://github.com/libexpat/libexpat/pull/39/commits
13300a48773fSEric van Gyzen
13310a48773fSEric van Gyzen        Bug fixes:
13320a48773fSEric van Gyzen             #32  Fix sharing of hash salt across parsers;
13330a48773fSEric van Gyzen                    relevant where XML_ExternalEntityParserCreate is called
13340a48773fSEric van Gyzen                    prior to XML_Parse, in particular (e.g. FBReader)
13350a48773fSEric van Gyzen             #28  xmlwf: Auto-disable use of memory-mapping (and parsing
13360a48773fSEric van Gyzen                    as a single chunk) for files larger than ~1 GB (2^30 bytes)
13370a48773fSEric van Gyzen                    rather than failing with error "out of memory"
13380a48773fSEric van Gyzen              #3  Fix double free after malloc failure in DTD code; commit
13390a48773fSEric van Gyzen                    7ae9c3d3af433cd4defe95234eae7dc8ed15637f
13400a48773fSEric van Gyzen             #17  Fix memory leak on parser error for unbound XML attribute
13410a48773fSEric van Gyzen                    prefix with new namespaces defined in the same tag;
13420a48773fSEric van Gyzen                    found by Google's OSS-Fuzz; commits
13430a48773fSEric van Gyzen                    * 16f87daae5a16132e479e4f71862128c7a915c73
13440a48773fSEric van Gyzen                    * b47dbc9745932c160893d433220e462bd605f8cd
13450a48773fSEric van Gyzen                  xmlwf on Windows: Add missing calls to CloseHandle
13460a48773fSEric van Gyzen
13470a48773fSEric van Gyzen        New features:
13480a48773fSEric van Gyzen             #30  Introduced environment switch EXPAT_ENTROPY_DEBUG=1
13490a48773fSEric van Gyzen                    for runtime debugging of entropy extraction
13500a48773fSEric van Gyzen
13510a48773fSEric van Gyzen        Other changes:
13520a48773fSEric van Gyzen                  Increase code coverage
13530a48773fSEric van Gyzen             #33  Reject use of XML_UNICODE_WCHAR_T with sizeof(wchar_t) != 2;
13540a48773fSEric van Gyzen                    XML_UNICODE_WCHAR_T was never meant to be used outside
13550a48773fSEric van Gyzen                    of Windows; 4-byte wchar_t is common on Linux
13560a48773fSEric van Gyzen   (SF.net) #538  Start using -fno-strict-aliasing
13570a48773fSEric van Gyzen   (SF.net) #540  Support compilation against cloudlibc of CloudABI
13580a48773fSEric van Gyzen                  Allow MinGW cross-compilation
13590a48773fSEric van Gyzen   (SF.net) #534  CMake: Introduce option "BUILD_doc" (enabled by default)
13600a48773fSEric van Gyzen                    to bypass compilation of the xmlwf.1 man page
13610a48773fSEric van Gyzen   (SF.net)  pr2  CMake: Introduce option "INSTALL" (enabled by default)
13620a48773fSEric van Gyzen                    to bypass installation of expat files
13630a48773fSEric van Gyzen                  CMake: Fix ninja support
13640a48773fSEric van Gyzen                  Autotools: Add parameters --enable-xml-context [COUNT]
13650a48773fSEric van Gyzen                    and --disable-xml-context; default of context of 1024
13660a48773fSEric van Gyzen                    bytes enabled unchanged
13670a48773fSEric van Gyzen             #14  Drop AmigaOS 4.x code and includes
13680a48773fSEric van Gyzen             #14  Drop ancient build systems:
13690a48773fSEric van Gyzen                    * Borland C++ Builder
13700a48773fSEric van Gyzen                    * OpenVMS
13710a48773fSEric van Gyzen                    * Open Watcom
13720a48773fSEric van Gyzen                    * Visual Studio 6.0
13730a48773fSEric van Gyzen                    * Pre-X Mac OS (MPW Makefile)
13740a48773fSEric van Gyzen                    If you happen to rely on some of these, please get in
13750a48773fSEric van Gyzen                    touch for joining with maintenance.
13760a48773fSEric van Gyzen             #10  Move from WIN32 to _WIN32
13770a48773fSEric van Gyzen             #13  Fix "make run-xmltest" order instability
13780a48773fSEric van Gyzen                  Address compile warnings
13790a48773fSEric van Gyzen                  Bump version info from 7:2:6 to 7:3:6
13800a48773fSEric van Gyzen                  Add AUTHORS file
13810a48773fSEric van Gyzen
13820a48773fSEric van Gyzen        Infrastructure:
13830a48773fSEric van Gyzen              #1  Migrate from SourceForge to GitHub (except downloads):
13840a48773fSEric van Gyzen                    https://github.com/libexpat/
13850a48773fSEric van Gyzen              #1  Re-create http://libexpat.org/ project website
13860a48773fSEric van Gyzen                  Start utilizing Travis CI
13870a48773fSEric van Gyzen
13880a48773fSEric van Gyzen        Special thanks to:
13890a48773fSEric van Gyzen            Andy Wang
13900a48773fSEric van Gyzen            Don Lewis
13910a48773fSEric van Gyzen            Ed Schouten
13920a48773fSEric van Gyzen            Karl Waclawek
13930a48773fSEric van Gyzen            Pascal Cuoq
13940a48773fSEric van Gyzen            Rhodri James
13950a48773fSEric van Gyzen            Sergei Nikulov
13960a48773fSEric van Gyzen            Tobias Taschner
13970a48773fSEric van Gyzen            Viktor Szakats
13980a48773fSEric van Gyzen                 and
13990a48773fSEric van Gyzen            Core Infrastructure Initiative
14000a48773fSEric van Gyzen            Mozilla Foundation (MOSS Track 3: Secure Open Source)
14010a48773fSEric van Gyzen            Radically Open Security
14020a48773fSEric van Gyzen
1403be8aff81SXin LIRelease 2.2.0 Tue June 21 2016
1404be8aff81SXin LI        Security fixes:
1405be8aff81SXin LI            #537  CVE-2016-0718 -- Fix crash on malformed input
1406be8aff81SXin LI                  CVE-2016-4472 -- Improve insufficient fix to CVE-2015-1283 /
1407be8aff81SXin LI                                   CVE-2015-2716 introduced with Expat 2.1.1
1408be8aff81SXin LI            #499  CVE-2016-5300 -- Use more entropy for hash initialization
1409be8aff81SXin LI                                   than the original fix to CVE-2012-0876
1410be8aff81SXin LI            #519  CVE-2012-6702 -- Resolve troublesome internal call to srand
1411be8aff81SXin LI                                   that was introduced with Expat 2.1.0
1412be8aff81SXin LI                                   when addressing CVE-2012-0876 (issue #496)
1413be8aff81SXin LI
1414be8aff81SXin LI        Bug fixes:
1415be8aff81SXin LI                  Fix uninitialized reads of size 1
1416be8aff81SXin LI                    (e.g. in little2_updatePosition)
1417be8aff81SXin LI                  Fix detection of UTF-8 character boundaries
1418be8aff81SXin LI
1419be8aff81SXin LI        Other changes:
1420be8aff81SXin LI            #532  Fix compilation for Visual Studio 2010 (keyword "C99")
1421be8aff81SXin LI                  Autotools: Resolve use of "$<" to better support bmake
1422be8aff81SXin LI                  Autotools: Add QA script "qa.sh" (and make target "qa")
1423be8aff81SXin LI                  Autotools: Respect CXXFLAGS if given
1424be8aff81SXin LI                  Autotools: Fix "make run-xmltest"
1425be8aff81SXin LI                  Autotools: Have "make run-xmltest" check for expected output
1426be8aff81SXin LI             p90  CMake: Fix static build (BUILD_shared=OFF) on Windows
1427be8aff81SXin LI            #536  CMake: Add soversion, support -DNO_SONAME=yes to bypass
1428be8aff81SXin LI            #323  CMake: Add suffix "d" to differentiate debug from release
1429be8aff81SXin LI                  CMake: Define WIN32 with CMake on Windows
1430be8aff81SXin LI                  Annotate memory allocators for GCC
1431be8aff81SXin LI                  Address all currently known compile warnings
1432be8aff81SXin LI                  Make sure that API symbols remain visible despite
1433be8aff81SXin LI                    -fvisibility=hidden
1434be8aff81SXin LI                  Remove executable flag from source files
1435be8aff81SXin LI                  Resolve COMPILED_FROM_DSP in favor of WIN32
1436be8aff81SXin LI
1437be8aff81SXin LI        Special thanks to:
1438be8aff81SXin LI            Björn Lindahl
1439be8aff81SXin LI            Christian Heimes
1440be8aff81SXin LI            Cristian Rodríguez
1441be8aff81SXin LI            Daniel Krügler
1442be8aff81SXin LI            Gustavo Grieco
1443be8aff81SXin LI            Karl Waclawek
1444be8aff81SXin LI            László Böszörményi
1445be8aff81SXin LI            Marco Grassi
1446be8aff81SXin LI            Pascal Cuoq
1447be8aff81SXin LI            Sergei Nikulov
1448be8aff81SXin LI            Thomas Beutlich
1449be8aff81SXin LI            Warren Young
1450be8aff81SXin LI            Yann Droneaud
1451be8aff81SXin LI
1452be8aff81SXin LIRelease 2.1.1 Sat March 12 2016
1453be8aff81SXin LI        Security fixes:
1454be8aff81SXin LI            #582: CVE-2015-1283 - Multiple integer overflows in XML_GetBuffer
1455be8aff81SXin LI
1456be8aff81SXin LI        Bug fixes:
1457be8aff81SXin LI            #502: Fix potential null pointer dereference
1458be8aff81SXin LI            #520: Symbol XML_SetHashSalt was not exported
1459be8aff81SXin LI            Output of "xmlwf -h" was incomplete
1460be8aff81SXin LI
1461be8aff81SXin LI        Other changes:
1462be8aff81SXin LI            #503: Document behavior of calling XML_SetHashSalt with salt 0
1463be8aff81SXin LI            Minor improvements to man page xmlwf(1)
1464be8aff81SXin LI            Improvements to the experimental CMake build system
1465be8aff81SXin LI            libtool now invoked with --verbose
1466be8aff81SXin LI
1467e3466a89SXin LIRelease 2.1.0 Sat March 24 2012
14680a48773fSEric van Gyzen        - Security fixes:
14690a48773fSEric van Gyzen          #2958794: CVE-2012-1148 - Memory leak in poolGrow.
14700a48773fSEric van Gyzen          #2895533: CVE-2012-1147 - Resource leak in readfilemap.c.
14710a48773fSEric van Gyzen          #3496608: CVE-2012-0876 - Hash DOS attack.
14720a48773fSEric van Gyzen          #2894085: CVE-2009-3560 - Buffer over-read and crash in big2_toUtf8().
14730a48773fSEric van Gyzen          #1990430: CVE-2009-3720 - Parser crash with special UTF-8 sequences.
1474e3466a89SXin LI        - Bug Fixes:
1475e3466a89SXin LI          #1742315: Harmful XML_ParserCreateNS suggestion.
1476e3466a89SXin LI          #1785430: Expat build fails on linux-amd64 with gcc version>=4.1 -O3.
1477e3466a89SXin LI          #1983953, 2517952, 2517962, 2649838:
1478e3466a89SXin LI                Build modifications using autoreconf instead of buildconf.sh.
1479e3466a89SXin LI          #2815947, #2884086: OBJEXT and EXEEXT support while building.
1480e3466a89SXin LI          #2517938: xmlwf should return non-zero exit status if not well-formed.
1481e3466a89SXin LI          #2517946: Wrong statement about XMLDecl in xmlwf.1 and xmlwf.sgml.
1482e3466a89SXin LI          #2855609: Dangling positionPtr after error.
1483e3466a89SXin LI          #2990652: CMake support.
1484e3466a89SXin LI          #3010819: UNEXPECTED_STATE with a trailing "%" in entity value.
14850a48773fSEric van Gyzen          #3206497: Uninitialized memory returned from XML_Parse.
1486e3466a89SXin LI          #3287849: make check fails on mingw-w64.
1487e3466a89SXin LI        - Patches:
1488e3466a89SXin LI          #1749198: pkg-config support.
1489e3466a89SXin LI          #3010222: Fix for bug #3010819.
1490e3466a89SXin LI          #3312568: CMake support.
1491e3466a89SXin LI          #3446384: Report byte offsets for attr names and values.
1492e3466a89SXin LI        - New Features / API changes:
1493be8aff81SXin LI          Added new API member XML_SetHashSalt() that allows setting an initial
1494e3466a89SXin LI                value (salt) for hash calculations. This is part of the fix for
1495e3466a89SXin LI                bug #3496608 to randomize hash parameters.
1496e3466a89SXin LI          When compiled with XML_ATTR_INFO defined, adds new API member
1497e3466a89SXin LI                XML_GetAttributeInfo() that allows retrieving the byte
1498e3466a89SXin LI                offsets for attribute names and values (patch #3446384).
1499e3466a89SXin LI          Added CMake build system.
1500e3466a89SXin LI                See bug #2990652 and patch #3312568.
1501e3466a89SXin LI          Added run-benchmark target to Makefile.in - relies on testdata module
1502e3466a89SXin LI                present in the same relative location as in the repository.
1503e3466a89SXin LI
1504220ed979SColeman KaneRelease 2.0.1 Tue June 5 2007
1505e3466a89SXin LI        - Fixed bugs #1515266, #1515600: The character data handler's calling
1506220ed979SColeman Kane          of XML_StopParser() was not handled properly; if the parser was
1507220ed979SColeman Kane          stopped and the handler set to NULL, the parser would segfault.
1508220ed979SColeman Kane        - Fixed bug #1690883: Expat failed on EBCDIC systems as it assumed
1509220ed979SColeman Kane          some character constants to be ASCII encoded.
1510220ed979SColeman Kane        - Minor cleanups of the test harness.
1511220ed979SColeman Kane        - Fixed xmlwf bug #1513566: "out of memory" error on file size zero.
1512220ed979SColeman Kane        - Fixed outline.c bug #1543233: missing a final XML_ParserFree() call.
1513220ed979SColeman Kane        - Fixes and improvements for Windows platform:
1514e3466a89SXin LI          bugs #1409451, #1476160, #1548182, #1602769, #1717322.
1515220ed979SColeman Kane        - Build fixes for various platforms:
1516220ed979SColeman Kane          HP-UX, Tru64, Solaris 9: patch #1437840, bug #1196180.
1517220ed979SColeman Kane          All Unix: #1554618 (refreshed config.sub/config.guess).
1518220ed979SColeman Kane                    #1490371, #1613457: support both, DESTDIR and INSTALL_ROOT,
1519220ed979SColeman Kane                    without relying on GNU-Make specific features.
1520220ed979SColeman Kane          #1647805: Patched configure.in to work better with Intel compiler.
1521220ed979SColeman Kane        - Fixes to Makefile.in to have make check work correctly:
1522220ed979SColeman Kane          bugs #1408143, #1535603, #1536684.
1523220ed979SColeman Kane        - Added Open Watcom support: patch #1523242.
1524220ed979SColeman Kane
1525220ed979SColeman KaneRelease 2.0.0 Wed Jan 11 2006
1526220ed979SColeman Kane        - We no longer use the "check" library for C unit testing; we
1527220ed979SColeman Kane          always use the (partial) internal implementation of the API.
1528220ed979SColeman Kane        - Report XML_NS setting via XML_GetFeatureList().
1529220ed979SColeman Kane        - Fixed headers for use from C++.
1530220ed979SColeman Kane        - XML_GetCurrentLineNumber() and  XML_GetCurrentColumnNumber()
1531220ed979SColeman Kane          now return unsigned integers.
1532220ed979SColeman Kane        - Added XML_LARGE_SIZE switch to enable 64-bit integers for
1533220ed979SColeman Kane          byte indexes and line/column numbers.
1534220ed979SColeman Kane        - Updated to use libtool 1.5.22 (the most recent).
1535220ed979SColeman Kane        - Added support for AmigaOS.
1536e3466a89SXin LI        - Some mostly minor bug fixes. SF issues include: #1006708,
1537e3466a89SXin LI          #1021776, #1023646, #1114960, #1156398, #1221160, #1271642.
1538220ed979SColeman Kane
1539220ed979SColeman KaneRelease 1.95.8 Fri Jul 23 2004
1540220ed979SColeman Kane        - Major new feature: suspend/resume.  Handlers can now request
1541220ed979SColeman Kane          that a parse be suspended for later resumption or aborted
1542220ed979SColeman Kane          altogether.  See "Temporarily Stopping Parsing" in the
1543220ed979SColeman Kane          documentation for more details.
1544220ed979SColeman Kane        - Some mostly minor bug fixes, but compilation should no
1545220ed979SColeman Kane          longer generate warnings on most platforms.  SF issues
1546e3466a89SXin LI          include: #827319, #840173, #846309, #888329, #896188, #923913,
1547e3466a89SXin LI          #928113, #961698, #985192.
1548220ed979SColeman Kane
1549220ed979SColeman KaneRelease 1.95.7 Mon Oct 20 2003
1550220ed979SColeman Kane        - Fixed enum XML_Status issue (reported on SourceForge many
1551220ed979SColeman Kane          times), so compilers that are properly picky will be happy.
1552220ed979SColeman Kane        - Introduced an XMLCALL macro to control the calling
1553220ed979SColeman Kane          convention used by the Expat API; this macro should be used
1554220ed979SColeman Kane          to annotate prototypes and definitions of callback
1555220ed979SColeman Kane          implementations in code compiled with a calling convention
1556220ed979SColeman Kane          other than the default convention for the host platform.
1557220ed979SColeman Kane        - Improved ability to build without the configure-generated
1558220ed979SColeman Kane          expat_config.h header.  This is useful for applications
1559220ed979SColeman Kane          which embed Expat rather than linking in the library.
1560e3466a89SXin LI        - Fixed a variety of bugs: see SF issues #458907, #609603,
1561e3466a89SXin LI          #676844, #679754, #692878, #692964, #695401, #699323, #699487,
1562e3466a89SXin LI          #820946.
1563220ed979SColeman Kane        - Improved hash table lookups.
1564220ed979SColeman Kane        - Added more regression tests and improved documentation.
1565220ed979SColeman Kane
1566220ed979SColeman KaneRelease 1.95.6 Tue Jan 28 2003
1567220ed979SColeman Kane        - Added XML_FreeContentModel().
1568220ed979SColeman Kane        - Added XML_MemMalloc(), XML_MemRealloc(), XML_MemFree().
1569e3466a89SXin LI        - Fixed a variety of bugs: see SF issues #615606, #616863,
1570e3466a89SXin LI          #618199, #653180, #673791.
1571220ed979SColeman Kane        - Enhanced the regression test suite.
1572e3466a89SXin LI        - Man page improvements: includes SF issue #632146.
1573220ed979SColeman Kane
15745bb6a25fSPoul-Henning KampRelease 1.95.5 Fri Sep 6 2002
15755bb6a25fSPoul-Henning Kamp        - Added XML_UseForeignDTD() for improved SAX2 support.
15765bb6a25fSPoul-Henning Kamp        - Added XML_GetFeatureList().
15775bb6a25fSPoul-Henning Kamp        - Defined XML_Bool type and the values XML_TRUE and XML_FALSE.
15785bb6a25fSPoul-Henning Kamp        - Use an incomplete struct instead of a void* for the parser
15795bb6a25fSPoul-Henning Kamp          (may not retain).
15805bb6a25fSPoul-Henning Kamp        - Fixed UTF-8 decoding bug that caused legal UTF-8 to be rejected.
15815bb6a25fSPoul-Henning Kamp        - Finally fixed bug where default handler would report DTD
15825bb6a25fSPoul-Henning Kamp          events that were already handled by another handler.
1583220ed979SColeman Kane          Initial patch contributed by Darryl Miles.
15845bb6a25fSPoul-Henning Kamp        - Removed unnecessary DllMain() function that caused static
15855bb6a25fSPoul-Henning Kamp          linking into a DLL to be difficult.
15865bb6a25fSPoul-Henning Kamp        - Added VC++ projects for building static libraries.
15875bb6a25fSPoul-Henning Kamp        - Reduced line-length for all source code and headers to be
15885bb6a25fSPoul-Henning Kamp          no longer than 80 characters, to help with AS/400 support.
15895bb6a25fSPoul-Henning Kamp        - Reduced memory copying during parsing (SF patch #600964).
1590e3466a89SXin LI        - Fixed a variety of bugs: see SF issues #580793, #434664,
1591e3466a89SXin LI          #483514, #580503, #581069, #584041, #584183, #584832, #585537,
1592e3466a89SXin LI          #596555, #596678, #598352, #598944, #599715, #600479, #600971.
15935bb6a25fSPoul-Henning Kamp
15945bb6a25fSPoul-Henning KampRelease 1.95.4 Fri Jul 12 2002
15955bb6a25fSPoul-Henning Kamp        - Added support for VMS, contributed by Craig Berry.  See
15965bb6a25fSPoul-Henning Kamp          vms/README.vms for more information.
15975bb6a25fSPoul-Henning Kamp        - Added Mac OS (classic) support, with a makefile for MPW,
15985bb6a25fSPoul-Henning Kamp          contributed by Thomas Wegner and Daryle Walker.
15995bb6a25fSPoul-Henning Kamp        - Added Borland C++ Builder 5 / BCC 5.5 support, contributed
16005bb6a25fSPoul-Henning Kamp          by Patrick McConnell (SF patch #538032).
1601e3466a89SXin LI        - Fixed a variety of bugs: see SF issues #441449, #563184,
1602e3466a89SXin LI          #564342, #566334, #566901, #569461, #570263, #575168, #579196.
16035bb6a25fSPoul-Henning Kamp        - Made skippedEntityHandler conform to SAX2 (see source comment)
16045bb6a25fSPoul-Henning Kamp        - Re-implemented WFC: Entity Declared from XML 1.0 spec and
16055bb6a25fSPoul-Henning Kamp          added a new error "entity declared in parameter entity":
1606e3466a89SXin LI          see SF bug report #569461 and SF patch #578161
16075bb6a25fSPoul-Henning Kamp        - Re-implemented section 5.1 from XML 1.0 spec:
1608e3466a89SXin LI          see SF bug report #570263 and SF patch #578161
16095bb6a25fSPoul-Henning Kamp
16105bb6a25fSPoul-Henning KampRelease 1.95.3 Mon Jun 3 2002
16115bb6a25fSPoul-Henning Kamp        - Added a project to the MSVC workspace to create a wchar_t
16125bb6a25fSPoul-Henning Kamp          version of the library; the DLLs are named libexpatw.dll.
16135bb6a25fSPoul-Henning Kamp        - Changed the name of the Windows DLLs from expat.dll to
16145bb6a25fSPoul-Henning Kamp          libexpat.dll; this fixes SF bug #432456.
16155bb6a25fSPoul-Henning Kamp        - Added the XML_ParserReset() API function.
16165bb6a25fSPoul-Henning Kamp        - Fixed XML_SetReturnNSTriplet() to work for element names.
16175bb6a25fSPoul-Henning Kamp        - Made the XML_UNICODE builds usable (thanks, Karl!).
16185bb6a25fSPoul-Henning Kamp        - Allow xmlwf to read from standard input.
16195bb6a25fSPoul-Henning Kamp        - Install a man page for xmlwf on Unix systems.
1620e3466a89SXin LI        - Fixed many bugs; see SF bug reports #231864, #461380, #464837,
1621e3466a89SXin LI          #466885, #469226, #477667, #484419, #487840, #494749, #496505,
1622e3466a89SXin LI          #547350.  Other bugs which we can't test as easily may also
16235bb6a25fSPoul-Henning Kamp          have been fixed, especially in the area of build support.
16245bb6a25fSPoul-Henning Kamp
16255bb6a25fSPoul-Henning KampRelease 1.95.2 Fri Jul 27 2001
16265bb6a25fSPoul-Henning Kamp        - More changes to make MSVC happy with the build; add a single
16275bb6a25fSPoul-Henning Kamp          workspace to support both the library and xmlwf application.
16285bb6a25fSPoul-Henning Kamp        - Added a Windows installer for Windows users; includes
16295bb6a25fSPoul-Henning Kamp          xmlwf.exe.
16305bb6a25fSPoul-Henning Kamp        - Added compile-time constants that can be used to determine the
16315bb6a25fSPoul-Henning Kamp          Expat version
16325bb6a25fSPoul-Henning Kamp        - Removed a lot of GNU-specific dependencies to aide portability
16335bb6a25fSPoul-Henning Kamp          among the various Unix flavors.
16345bb6a25fSPoul-Henning Kamp        - Fix the UTF-8 BOM bug.
16355bb6a25fSPoul-Henning Kamp        - Cleaned up warning messages for several compilers.
16365bb6a25fSPoul-Henning Kamp        - Added the -Wall, -Wstrict-prototypes options for GCC.
16375bb6a25fSPoul-Henning Kamp
16385bb6a25fSPoul-Henning KampRelease 1.95.1 Sun Oct 22 15:11:36 EDT 2000
16395bb6a25fSPoul-Henning Kamp        - Changes to get expat to build under Microsoft compiler
16405bb6a25fSPoul-Henning Kamp        - Removed all aborts and instead return an UNEXPECTED_STATE error.
16415bb6a25fSPoul-Henning Kamp        - Fixed a bug where a stray '%' in an entity value would cause an
16425bb6a25fSPoul-Henning Kamp          abort.
16435bb6a25fSPoul-Henning Kamp        - Defined XML_SetEndNamespaceDeclHandler. Thanks to Darryl Miles for
16445bb6a25fSPoul-Henning Kamp          finding this oversight.
16455bb6a25fSPoul-Henning Kamp        - Changed default patterns in lib/Makefile.in to fit non-GNU makes
16465bb6a25fSPoul-Henning Kamp          Thanks to robin@unrated.net for reporting and providing an
16475bb6a25fSPoul-Henning Kamp          account to test on.
16485bb6a25fSPoul-Henning Kamp        - The reference had the wrong label for XML_SetStartNamespaceDecl.
16495bb6a25fSPoul-Henning Kamp          Reported by an anonymous user.
16505bb6a25fSPoul-Henning Kamp
16515bb6a25fSPoul-Henning KampRelease 1.95.0 Fri Sep 29 2000
16525bb6a25fSPoul-Henning Kamp        - XML_ParserCreate_MM
16535bb6a25fSPoul-Henning Kamp                Allows you to set a memory management suite to replace the
16545bb6a25fSPoul-Henning Kamp                standard malloc,realloc, and free.
16555bb6a25fSPoul-Henning Kamp        - XML_SetReturnNSTriplet
16565bb6a25fSPoul-Henning Kamp                If you turn this feature on when namespace processing is in
16575bb6a25fSPoul-Henning Kamp                effect, then qualified, prefixed element and attribute names
16585bb6a25fSPoul-Henning Kamp                are returned as "uri|name|prefix" where '|' is whatever
16595bb6a25fSPoul-Henning Kamp                separator character is used in namespace processing.
16605bb6a25fSPoul-Henning Kamp        - Merged in features from perl-expat
16615bb6a25fSPoul-Henning Kamp                o XML_SetElementDeclHandler
16625bb6a25fSPoul-Henning Kamp                o XML_SetAttlistDeclHandler
16635bb6a25fSPoul-Henning Kamp                o XML_SetXmlDeclHandler
16645bb6a25fSPoul-Henning Kamp                o XML_SetEntityDeclHandler
16655bb6a25fSPoul-Henning Kamp                o StartDoctypeDeclHandler takes 3 additional parameters:
16665bb6a25fSPoul-Henning Kamp                        sysid, pubid, has_internal_subset
16675bb6a25fSPoul-Henning Kamp                o Many paired handler setters (like XML_SetElementHandler)
16685bb6a25fSPoul-Henning Kamp                  now have corresponding individual handler setters
16695bb6a25fSPoul-Henning Kamp                o XML_GetInputContext for getting the input context of
16705bb6a25fSPoul-Henning Kamp                  the current parse position.
16715bb6a25fSPoul-Henning Kamp        - Added reference material
16725bb6a25fSPoul-Henning Kamp        - Packaged into a distribution that builds a sharable library
1673