xref: /openbsd-src/lib/libexpat/Changes (revision aa071e6ed2e21e8e72a6aac46533908f2defbdef)
1c033f770Sbluhm                           __  __            _
2c033f770Sbluhm                        ___\ \/ /_ __   __ _| |_
3c033f770Sbluhm                       / _ \\  /| '_ \ / _` | __|
4c033f770Sbluhm                      |  __//  \| |_) | (_| | |_
5c033f770Sbluhm                       \___/_/\_\ .__/ \__,_|\__|
6c033f770Sbluhm                                |_| XML parser
72feb5d2aSbluhm
8c033f770Sbluhm!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
9c033f770Sbluhm!! <blink>Expat is UNDERSTAFFED and WITHOUT FUNDING.</blink>                 !!
10c033f770Sbluhm!!                 ~~~~~~~~~~~~                                              !!
11c033f770Sbluhm!! The following topics need *additional skilled C developers* to progress   !!
12c033f770Sbluhm!! in a timely manner or at all (loosely ordered by descending priority):    !!
13c033f770Sbluhm!!                                                                           !!
14c033f770Sbluhm!! - <blink>fixing a complex non-public security issue</blink>,              !!
15c033f770Sbluhm!! - teaming up on researching and fixing future security reports and        !!
16c033f770Sbluhm!!   ClusterFuzz findings with few-days-max response times in communication  !!
17c033f770Sbluhm!!   in order to (1) have a sound fix ready before the end of a 90 days      !!
18c033f770Sbluhm!!   grace period and (2) in a sustainable manner,                           !!
19c033f770Sbluhm!! - implementing and auto-testing XML 1.0r5 support                         !!
20c033f770Sbluhm!!   (needs discussion before pull requests),                                !!
21c033f770Sbluhm!! - smart ideas on fixing the Autotools CMake files generation issue        !!
22c033f770Sbluhm!!   without breaking CI (needs discussion before pull requests),            !!
23c033f770Sbluhm!! - the Windows binaries topic (needs requirements engineering first),      !!
24c033f770Sbluhm!! - pushing migration from `int` to `size_t` further                        !!
25c033f770Sbluhm!!   including edge-cases test coverage (needs discussion before anything).  !!
26c033f770Sbluhm!!                                                                           !!
27c033f770Sbluhm!! For details, please reach out via e-mail to sebastian@pipping.org so we   !!
28c033f770Sbluhm!! can schedule a voice call on the topic, in English or German.             !!
29c033f770Sbluhm!!                                                                           !!
30c033f770Sbluhm!! THANK YOU!                        Sebastian Pipping -- Berlin, 2024-03-09 !!
31c033f770Sbluhm!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
32c033f770Sbluhm
33*aa071e6eSbluhmRelease 2.6.4 Wed November 6 2024
34*aa071e6eSbluhm        Security fixes:
35*aa071e6eSbluhm            #915  CVE-2024-50602 -- Fix crash within function XML_ResumeParser
36*aa071e6eSbluhm                    from a NULL pointer dereference by disallowing function
37*aa071e6eSbluhm                    XML_StopParser to (stop or) suspend an unstarted parser.
38*aa071e6eSbluhm                    A new error code XML_ERROR_NOT_STARTED was introduced to
39*aa071e6eSbluhm                    properly communicate this situation.  // CWE-476 CWE-754
40*aa071e6eSbluhm
41*aa071e6eSbluhm        Other changes:
42*aa071e6eSbluhm            #903  CMake: Add alias target "expat::expat"
43*aa071e6eSbluhm            #905  docs: Document use via CMake >=3.18 with FetchContent
44*aa071e6eSbluhm                    and SOURCE_SUBDIR and its consequences
45*aa071e6eSbluhm            #902  tests: Reduce use of global parser instance
46*aa071e6eSbluhm            #904  tests: Resolve duplicate handler
47*aa071e6eSbluhm       #317 #918  tests: Improve tests on doctype closing (ex CVE-2019-15903)
48*aa071e6eSbluhm            #914  Fix signedness of format strings
49*aa071e6eSbluhm       #919 #920  Version info bumped from 10:3:9 (libexpat*.so.1.9.3)
50*aa071e6eSbluhm                    to 11:0:10 (libexpat*.so.1.10.0); see https://verbump.de/
51*aa071e6eSbluhm                    for what these numbers do
52*aa071e6eSbluhm
53*aa071e6eSbluhm        Infrastructure:
54*aa071e6eSbluhm            #907  CI: Upgrade Clang from 18 to 19
55*aa071e6eSbluhm            #913  CI: Drop macos-12 and add macos-15
56*aa071e6eSbluhm            #910  CI: Adapt to breaking changes in GitHub Actions
57*aa071e6eSbluhm            #898  Add missing entries to .gitignore
58*aa071e6eSbluhm
59*aa071e6eSbluhm        Special thanks to:
60*aa071e6eSbluhm            Hanno Böck
61*aa071e6eSbluhm            José Eduardo Gutiérrez Conejo
62*aa071e6eSbluhm            José Ricardo Cardona Quesada
63*aa071e6eSbluhm
6461ad8a07SbluhmRelease 2.6.3 Wed September 4 2024
6561ad8a07Sbluhm        Security fixes:
6661ad8a07Sbluhm       #887 #890  CVE-2024-45490 -- Calling function XML_ParseBuffer with
6761ad8a07Sbluhm                    len < 0 without noticing and then calling XML_GetBuffer
6861ad8a07Sbluhm                    will have XML_ParseBuffer fail to recognize the problem
6961ad8a07Sbluhm                    and XML_GetBuffer corrupt memory.
7061ad8a07Sbluhm                    With the fix, XML_ParseBuffer now complains with error
7161ad8a07Sbluhm                    XML_ERROR_INVALID_ARGUMENT just like sibling XML_Parse
7261ad8a07Sbluhm                    has been doing since Expat 2.2.1, and now documented.
7361ad8a07Sbluhm                    Impact is denial of service to potentially artitrary code
7461ad8a07Sbluhm                    execution.
7561ad8a07Sbluhm       #888 #891  CVE-2024-45491 -- Internal function dtdCopy can have an
7661ad8a07Sbluhm                    integer overflow for nDefaultAtts on 32-bit platforms
7761ad8a07Sbluhm                    (where UINT_MAX equals SIZE_MAX).
7861ad8a07Sbluhm                    Impact is denial of service to potentially artitrary code
7961ad8a07Sbluhm                    execution.
8061ad8a07Sbluhm       #889 #892  CVE-2024-45492 -- Internal function nextScaffoldPart can
8161ad8a07Sbluhm                    have an integer overflow for m_groupSize on 32-bit
8261ad8a07Sbluhm                    platforms (where UINT_MAX equals SIZE_MAX).
8361ad8a07Sbluhm                    Impact is denial of service to potentially artitrary code
8461ad8a07Sbluhm                    execution.
8561ad8a07Sbluhm
8661ad8a07Sbluhm        Other changes:
8761ad8a07Sbluhm       #851 #879  Autotools: Sync CMake templates with CMake 3.28
8861ad8a07Sbluhm            #853  Autotools: Always provide path to find(1) for portability
8961ad8a07Sbluhm            #861  Autotools: Ensure that the m4 directory always exists.
9061ad8a07Sbluhm            #870  Autotools: Simplify handling of SIZEOF_VOID_P
9161ad8a07Sbluhm            #869  Autotools: Support non-GNU sed
9261ad8a07Sbluhm            #856  Autotools|CMake: Fix main() to main(void)
9361ad8a07Sbluhm            #865  Autotools|CMake: Fix compile tests for HAVE_SYSCALL_GETRANDOM
9461ad8a07Sbluhm            #863  Autotools|CMake: Stop requiring dos2unix
9561ad8a07Sbluhm       #854 #855  CMake: Fix check for symbols size_t and off_t
9661ad8a07Sbluhm            #864  docs|tests: Convert README to Markdown and update
9761ad8a07Sbluhm            #741  Windows: Drop support for Visual Studio <=15.0/2017
9861ad8a07Sbluhm            #886  Drop needless XML_DTD guards around is_param access
9961ad8a07Sbluhm            #885  Fix typo in a code comment
10061ad8a07Sbluhm       #894 #896  Version info bumped from 10:2:9 (libexpat*.so.1.9.2)
10161ad8a07Sbluhm                    to 10:3:9 (libexpat*.so.1.9.3); see https://verbump.de/
10261ad8a07Sbluhm                    for what these numbers do
10361ad8a07Sbluhm
10461ad8a07Sbluhm        Infrastructure:
10561ad8a07Sbluhm            #880  Readme: Promote the call for help
10661ad8a07Sbluhm            #868  CI: Fix various issues
10761ad8a07Sbluhm            #849  CI: Allow triggering GitHub Actions workflows manually
10861ad8a07Sbluhm    #851 #872 ..
10961ad8a07Sbluhm       #873 #879  CI: Adapt to breaking changes in GitHub Actions
11061ad8a07Sbluhm
11161ad8a07Sbluhm        Special thanks to:
11261ad8a07Sbluhm            Alexander Bluhm
11361ad8a07Sbluhm            Berkay Eren Ürün
11461ad8a07Sbluhm            Dag-Erling Smørgrav
11561ad8a07Sbluhm            Ferenc Géczi
11661ad8a07Sbluhm            TaiYou
11761ad8a07Sbluhm
118c033f770SbluhmRelease 2.6.2 Wed March 13 2024
1195c4051bcSbluhm        Security fixes:
1205c4051bcSbluhm       #839 #842  CVE-2024-28757 -- Prevent billion laughs attacks with
1215c4051bcSbluhm                    isolated use of external parsers.  Please see the commit
1225c4051bcSbluhm                    message of commit 1d50b80cf31de87750103656f6eb693746854aa8
1235c4051bcSbluhm                    for details.
1245c4051bcSbluhm
125c033f770Sbluhm        Bug fixes:
126c033f770Sbluhm       #839 #841  Reject direct parameter entity recursion
127c033f770Sbluhm                    and avoid the related undefined behavior
128c033f770Sbluhm
129c033f770Sbluhm        Other changes:
130c033f770Sbluhm            #847  Autotools: Fix build for DOCBOOK_TO_MAN containing spaces
131c033f770Sbluhm            #837  Add missing #821 and #824 to 2.6.1 change log
132c033f770Sbluhm       #838 #843  Version info bumped from 10:1:9 (libexpat*.so.1.9.1)
133c033f770Sbluhm                    to 10:2:9 (libexpat*.so.1.9.2); see https://verbump.de/
134c033f770Sbluhm                    for what these numbers do
135c033f770Sbluhm
136c033f770Sbluhm        Special thanks to:
137c033f770Sbluhm            Philippe Antoine
138c033f770Sbluhm            Tomas Korbar
139c033f770Sbluhm                 and
140c033f770Sbluhm            Clang UndefinedBehaviorSanitizer
141c033f770Sbluhm            OSS-Fuzz / ClusterFuzz
142c033f770Sbluhm
143c033f770SbluhmRelease 2.6.1 Thu February 29 2024
144c033f770Sbluhm        Bug fixes:
145c033f770Sbluhm            #817  Make tests independent of CPU speed, and thus more robust
146c033f770Sbluhm       #828 #836  Expose billion laughs API with XML_DTD defined and
147c033f770Sbluhm                    XML_GE undefined, regression from 2.6.0
148c033f770Sbluhm
149c033f770Sbluhm        Other changes:
150c033f770Sbluhm            #829  Hide test-only code behind new internal macro
151c033f770Sbluhm            #833  Autotools: Reject expat_config.h.in defining SIZEOF_VOID_P
152c033f770Sbluhm       #821 #824  Autotools: Fix "make clean" for case:
153c033f770Sbluhm                    ./configure --without-docbook && make clean all
154c033f770Sbluhm            #819  Address compiler warnings
155c033f770Sbluhm       #832 #834  Version info bumped from 10:0:9 (libexpat*.so.1.9.0)
156c033f770Sbluhm                    to 10:1:9 (libexpat*.so.1.9.1); see https://verbump.de/
157c033f770Sbluhm                    for what these numbers do
158c033f770Sbluhm
159c033f770Sbluhm        Infrastructure:
160c033f770Sbluhm            #818  CI: Adapt to breaking changes in clang-format
161c033f770Sbluhm
162c033f770Sbluhm        Special thanks to:
163c033f770Sbluhm            David Hall
164c033f770Sbluhm            Snild Dolkow
165c033f770Sbluhm
166bd8f1dc3SbluhmRelease 2.6.0 Tue February 6 2024
167bd8f1dc3Sbluhm        Security fixes:
168bd8f1dc3Sbluhm      #789 #814  CVE-2023-52425 -- Fix quadratic runtime issues with big tokens
169bd8f1dc3Sbluhm                   that can cause denial of service, in partial where
170bd8f1dc3Sbluhm                   dealing with compressed XML input.  Applications
171bd8f1dc3Sbluhm                   that parsed a document in one go -- a single call to
172bd8f1dc3Sbluhm                   functions XML_Parse or XML_ParseBuffer -- were not affected.
173bd8f1dc3Sbluhm                   The smaller the chunks/buffers you use for parsing
174bd8f1dc3Sbluhm                   previously, the bigger the problem prior to the fix.
175bd8f1dc3Sbluhm                   Backporters should be careful to no omit parts of
176bd8f1dc3Sbluhm                   pull request #789 and to include earlier pull request #771,
177bd8f1dc3Sbluhm                   in order to not break the fix.
178bd8f1dc3Sbluhm           #777  CVE-2023-52426 -- Fix billion laughs attacks for users
179bd8f1dc3Sbluhm                   compiling *without* XML_DTD defined (which is not common).
180bd8f1dc3Sbluhm                   Users with XML_DTD defined have been protected since
181bd8f1dc3Sbluhm                   Expat >=2.4.0 (and that was CVE-2013-0340 back then).
182bd8f1dc3Sbluhm
183bd8f1dc3Sbluhm        Bug fixes:
184bd8f1dc3Sbluhm            #753  Fix parse-size-dependent "invalid token" error for
185bd8f1dc3Sbluhm                    external entities that start with a byte order mark
186bd8f1dc3Sbluhm            #780  Fix NULL pointer dereference in setContext via
187bd8f1dc3Sbluhm                    XML_ExternalEntityParserCreate for compilation with
188bd8f1dc3Sbluhm                    XML_DTD undefined
189bd8f1dc3Sbluhm       #812 #813  Protect against closing entities out of order
190bd8f1dc3Sbluhm
191bd8f1dc3Sbluhm        Other changes:
192bd8f1dc3Sbluhm            #723  Improve support for arc4random/arc4random_buf
193bd8f1dc3Sbluhm       #771 #788  Improve buffer growth in XML_GetBuffer and XML_Parse
194bd8f1dc3Sbluhm       #761 #770  xmlwf: Support --help and --version
195bd8f1dc3Sbluhm       #759 #770  xmlwf: Support custom buffer size for XML_GetBuffer and read
196bd8f1dc3Sbluhm            #744  xmlwf: Improve language and URL clickability in help output
197bd8f1dc3Sbluhm            #673  examples: Add new example "element_declarations.c"
198bd8f1dc3Sbluhm            #764  Be stricter about macro XML_CONTEXT_BYTES at build time
199bd8f1dc3Sbluhm            #765  Make inclusion to expat_config.h consistent
200bd8f1dc3Sbluhm       #726 #727  Autotools: configure.ac: Support --disable-maintainer-mode
201bd8f1dc3Sbluhm    #678 #705 ..
202bd8f1dc3Sbluhm  #706 #733 #792  Autotools: Sync CMake templates with CMake 3.26
203bd8f1dc3Sbluhm            #795  Autotools: Make installation of shipped man page doc/xmlwf.1
204bd8f1dc3Sbluhm                    independent of docbook2man availability
205bd8f1dc3Sbluhm            #815  Autotools|CMake: Add missing -DXML_STATIC to pkg-config file
206bd8f1dc3Sbluhm                    section "Cflags.private" in order to fix compilation
207bd8f1dc3Sbluhm                    against static libexpat using pkg-config on Windows
208bd8f1dc3Sbluhm       #724 #751  Autotools|CMake: Require a C99 compiler
209bd8f1dc3Sbluhm                    (a de-facto requirement already since Expat 2.2.2 of 2017)
210bd8f1dc3Sbluhm            #793  Autotools|CMake: Fix PACKAGE_BUGREPORT variable
211bd8f1dc3Sbluhm       #750 #786  Autotools|CMake: Make test suite require a C++11 compiler
212bd8f1dc3Sbluhm            #749  CMake: Require CMake >=3.5.0
213bd8f1dc3Sbluhm            #672  CMake: Lowercase off_t and size_t to help a bug in Meson
214bd8f1dc3Sbluhm            #746  CMake: Sort xmlwf sources alphabetically
215bd8f1dc3Sbluhm            #785  CMake|Windows: Fix generation of DLL file version info
216bd8f1dc3Sbluhm            #790  CMake: Build tests/benchmark/benchmark.c as well for
217bd8f1dc3Sbluhm                    a build with -DEXPAT_BUILD_TESTS=ON
218bd8f1dc3Sbluhm       #745 #757  docs: Document the importance of isFinal + adjust tests
219bd8f1dc3Sbluhm                    accordingly
220bd8f1dc3Sbluhm            #736  docs: Improve use of "NULL" and "null"
221bd8f1dc3Sbluhm            #713  docs: Be specific about version of XML (XML 1.0r4)
222bd8f1dc3Sbluhm                    and version of C (C99); (XML 1.0r5 will need a sponsor.)
223bd8f1dc3Sbluhm            #762  docs: reference.html: Promote function XML_ParseBuffer more
224bd8f1dc3Sbluhm            #779  docs: reference.html: Add HTML anchors to XML_* macros
225bd8f1dc3Sbluhm            #760  docs: reference.html: Upgrade to OK.css 1.2.0
226bd8f1dc3Sbluhm       #763 #739  docs: Fix typos
227bd8f1dc3Sbluhm            #696  docs|CI: Use HTTPS URLs instead of HTTP at various places
228bd8f1dc3Sbluhm    #669 #670 ..
229bd8f1dc3Sbluhm    #692 #703 ..
230bd8f1dc3Sbluhm       #733 #772  Address compiler warnings
231bd8f1dc3Sbluhm       #798 #800  Address clang-tidy warnings
232bd8f1dc3Sbluhm       #775 #776  Version info bumped from 9:10:8 (libexpat*.so.1.8.10)
233bd8f1dc3Sbluhm                    to 10:0:9 (libexpat*.so.1.9.0); see https://verbump.de/
234bd8f1dc3Sbluhm                    for what these numbers do
235bd8f1dc3Sbluhm
236bd8f1dc3Sbluhm        Infrastructure:
237bd8f1dc3Sbluhm       #700 #701  docs: Document security policy in file SECURITY.md
238bd8f1dc3Sbluhm            #766  docs: Improve parse buffer variables in-code documentation
239bd8f1dc3Sbluhm    #674 #738 ..
240bd8f1dc3Sbluhm    #740 #747 ..
241bd8f1dc3Sbluhm  #748 #781 #782  Refactor coverage and conformance tests
242bd8f1dc3Sbluhm       #714 #716  Refactor debug level variables to unsigned long
243bd8f1dc3Sbluhm            #671  Improve handling of empty environment variable value
244bd8f1dc3Sbluhm                    in function getDebugLevel (without visible user effect)
245bd8f1dc3Sbluhm    #755 #774 ..
246bd8f1dc3Sbluhm    #758 #783 ..
247bd8f1dc3Sbluhm       #784 #787  tests: Improve test coverage with regard to parse chunk size
248bd8f1dc3Sbluhm  #660 #797 #801  Fuzzing: Improve fuzzing coverage
249bd8f1dc3Sbluhm       #367 #799  Fuzzing|CI: Start running OSS-Fuzz fuzzing regression tests
250bd8f1dc3Sbluhm       #698 #721  CI: Resolve some Travis CI leftovers
251bd8f1dc3Sbluhm            #669  CI: Be robust towards absence of Git tags
252bd8f1dc3Sbluhm       #693 #694  CI: Set permissions to "contents: read" for security
253bd8f1dc3Sbluhm            #709  CI: Pin all GitHub Actions to specific commits for security
254bd8f1dc3Sbluhm            #739  CI: Reject spelling errors using codespell
255bd8f1dc3Sbluhm            #798  CI: Enforce clang-tidy clean code
256bd8f1dc3Sbluhm    #773 #808 ..
257bd8f1dc3Sbluhm       #809 #810  CI: Upgrade Clang from 15 to 18
258bd8f1dc3Sbluhm            #796  CI: Start using Clang's Control Flow Integrity sanitizer
259bd8f1dc3Sbluhm  #675 #720 #722  CI: Adapt to breaking changes in GitHub Actions Ubuntu images
260bd8f1dc3Sbluhm            #689  CI: Adapt to breaking changes in Clang/LLVM Debian packaging
261bd8f1dc3Sbluhm            #763  CI: Adapt to breaking changes in codespell
262bd8f1dc3Sbluhm            #803  CI: Adapt to breaking changes in Cppcheck
263bd8f1dc3Sbluhm
264bd8f1dc3Sbluhm        Special thanks to:
265bd8f1dc3Sbluhm            Ivan Galkin
266bd8f1dc3Sbluhm            Joyce Brum
267bd8f1dc3Sbluhm            Philippe Antoine
268bd8f1dc3Sbluhm            Rhodri James
269bd8f1dc3Sbluhm            Snild Dolkow
270bd8f1dc3Sbluhm            spookyahell
271bd8f1dc3Sbluhm            Steven Garske
272bd8f1dc3Sbluhm                 and
273bd8f1dc3Sbluhm            Clang AddressSanitizer
274bd8f1dc3Sbluhm            Clang UndefinedBehaviorSanitizer
275bd8f1dc3Sbluhm            codespell
276bd8f1dc3Sbluhm            GCC Farm Project
277bd8f1dc3Sbluhm            OSS-Fuzz
278bd8f1dc3Sbluhm            Sony Mobile
279bd8f1dc3Sbluhm
280751a8f41SbluhmRelease 2.5.0 Tue October 25 2022
281751a8f41Sbluhm        Security fixes:
282751a8f41Sbluhm  #616 #649 #650  CVE-2022-43680 -- Fix heap use-after-free after overeager
283751a8f41Sbluhm                    destruction of a shared DTD in function
284751a8f41Sbluhm                    XML_ExternalEntityParserCreate in out-of-memory situations.
285751a8f41Sbluhm                    Expected impact is denial of service or potentially
286751a8f41Sbluhm                    arbitrary code execution.
287751a8f41Sbluhm
288751a8f41Sbluhm        Bug fixes:
289bd8f1dc3Sbluhm       #612 #645  Fix corruption from undefined entities
290751a8f41Sbluhm       #613 #654  Fix case when parsing was suspended while processing nested
291751a8f41Sbluhm                    entities
292751a8f41Sbluhm  #616 #652 #653  Stop leaking opening tag bindings after a closing tag
293751a8f41Sbluhm                    mismatch error where a parser is reset through
294751a8f41Sbluhm                    XML_ParserReset and then reused to parse
295751a8f41Sbluhm            #656  CMake: Fix generation of pkg-config file
296751a8f41Sbluhm            #658  MinGW|CMake: Fix static library name
297751a8f41Sbluhm
298751a8f41Sbluhm        Other changes:
299751a8f41Sbluhm            #663  Protect header expat_config.h from multiple inclusion
300751a8f41Sbluhm            #666  examples: Make use of XML_GetBuffer and be more
301751a8f41Sbluhm                    consistent across examples
302751a8f41Sbluhm            #648  Address compiler warnings
303751a8f41Sbluhm       #667 #668  Version info bumped from 9:9:8 to 9:10:8;
304751a8f41Sbluhm                    see https://verbump.de/ for what these numbers do
305751a8f41Sbluhm
306751a8f41Sbluhm        Special thanks to:
307751a8f41Sbluhm            Jann Horn
308751a8f41Sbluhm            Mark Brand
309751a8f41Sbluhm            Osyotr
310751a8f41Sbluhm            Rhodri James
311751a8f41Sbluhm                 and
312751a8f41Sbluhm            Google Project Zero
313751a8f41Sbluhm
3149029d806SbluhmRelease 2.4.9 Tue September 20 2022
3159029d806Sbluhm        Security fixes:
3169029d806Sbluhm       #629 #640  CVE-2022-40674 -- Heap use-after-free vulnerability in
3179029d806Sbluhm                    function doContent. Expected impact is denial of service
3189029d806Sbluhm                    or potentially arbitrary code execution.
3199029d806Sbluhm
3209029d806Sbluhm        Bug fixes:
3219029d806Sbluhm            #634  MinGW: Fix mis-compilation for -D__USE_MINGW_ANSI_STDIO=0
3229029d806Sbluhm            #614  docs: Fix documentation on effect of switch XML_DTD on
3239029d806Sbluhm                    symbol visibility in doc/reference.html
3249029d806Sbluhm
3259029d806Sbluhm        Other changes:
3269029d806Sbluhm            #638  MinGW: Make fix-xmltest-log.sh drop more Wine bug output
3279029d806Sbluhm       #596 #625  Autotools: Sync CMake templates with CMake 3.22
3289029d806Sbluhm            #608  CMake: Migrate from use of CMAKE_*_POSTFIX to
3299029d806Sbluhm                    dedicated variables EXPAT_*_POSTFIX to stop affecting
3309029d806Sbluhm                    other projects
3319029d806Sbluhm       #597 #599  Windows|CMake: Add missing -DXML_STATIC to test runners
3329029d806Sbluhm                    and fuzzers
3339029d806Sbluhm       #512 #621  Windows|CMake: Render .def file from a template to fix
3349029d806Sbluhm                    linking with -DEXPAT_DTD=OFF and/or -DEXPAT_ATTR_INFO=ON
3359029d806Sbluhm       #611 #621  MinGW|CMake: Apply MSVC .def file when linking
3369029d806Sbluhm       #622 #624  MinGW|CMake: Sync library name with GNU Autotools,
3379029d806Sbluhm                    i.e. produce libexpat-1.dll rather than libexpat.dll
3389029d806Sbluhm                    by default.  Filename libexpat.dll.a is unaffected.
3399029d806Sbluhm            #632  MinGW|CMake: Set missing variable CMAKE_RC_COMPILER in
3409029d806Sbluhm                    toolchain file "cmake/mingw-toolchain.cmake" to avoid
3419029d806Sbluhm                    error "windres: Command not found" on e.g. Ubuntu 20.04
3429029d806Sbluhm       #597 #627  CMake: Unify inconsistent use of set() and option() in
3439029d806Sbluhm                    context of public build time options to take need for
3449029d806Sbluhm                    set(.. FORCE) in projects using Expat by means of
3459029d806Sbluhm                    add_subdirectory(..) off Expat's users' shoulders
3469029d806Sbluhm       #626 #641  Stop exporting API symbols when building a static library
3479029d806Sbluhm            #644  Resolve use of deprecated "fgrep" by "grep -F"
3489029d806Sbluhm            #620  CMake: Make documentation on variables a bit more consistent
3499029d806Sbluhm            #636  CMake: Drop leading whitespace from a #cmakedefine line in
3509029d806Sbluhm                    file expat_config.h.cmake
3519029d806Sbluhm            #594  xmlwf: Fix harmless variable mix-up in function nsattcmp
3529029d806Sbluhm  #592 #593 #610  Address Cppcheck warnings
3539029d806Sbluhm            #643  Address Clang 15 compiler warnings
3549029d806Sbluhm       #642 #644  Version info bumped from 9:8:8 to 9:9:8;
3559029d806Sbluhm                    see https://verbump.de/ for what these numbers do
3569029d806Sbluhm
3579029d806Sbluhm        Infrastructure:
3589029d806Sbluhm       #597 #598  CI: Windows: Start covering MSVC 2022
3599029d806Sbluhm            #619  CI: macOS: Migrate off deprecated macOS 10.15
3609029d806Sbluhm            #632  CI: Linux: Make migration off deprecated Ubuntu 18.04 work
3619029d806Sbluhm            #643  CI: Upgrade Clang from 14 to 15
3629029d806Sbluhm            #637  apply-clang-format.sh: Add support for BSD find
3639029d806Sbluhm            #633  coverage.sh: Exclude MinGW headers
3649029d806Sbluhm            #635  coverage.sh: Fix name collision for -funsigned-char
3659029d806Sbluhm
3669029d806Sbluhm        Special thanks to:
3679029d806Sbluhm            David Faure
3689029d806Sbluhm            Felix Wilhelm
3699029d806Sbluhm            Frank Bergmann
3709029d806Sbluhm            Rhodri James
3719029d806Sbluhm            Rosen Penev
3729029d806Sbluhm            Thijs Schreijer
3739029d806Sbluhm            Vincent Torri
3749029d806Sbluhm                 and
3759029d806Sbluhm            Google Project Zero
3769029d806Sbluhm
3779029d806SbluhmRelease 2.4.8 Mon March 28 2022
3789029d806Sbluhm        Other changes:
3799029d806Sbluhm            #587  pkg-config: Move "-lm" to section "Libs.private"
3809029d806Sbluhm            #587  CMake|MSVC: Fix pkg-config section "Libs"
3819029d806Sbluhm        #55 #582  CMake|macOS: Start using linker arguments
3829029d806Sbluhm                    "-compatibility_version <version>" and
3839029d806Sbluhm                    "-current_version <version>" in a way compatible with
3849029d806Sbluhm                    GNU Libtool
3859029d806Sbluhm       #590 #591  Version info bumped from 9:7:8 to 9:8:8;
3869029d806Sbluhm                    see https://verbump.de/ for what these numbers do
3879029d806Sbluhm
3889029d806Sbluhm        Infrastructure:
3899029d806Sbluhm            #589  CI: Upgrade Clang from 13 to 14
3909029d806Sbluhm
3919029d806Sbluhm        Special thanks to:
3929029d806Sbluhm            evpobr
3939029d806Sbluhm            Kai Pastor
3949029d806Sbluhm            Sam James
3959029d806Sbluhm
396680fbc60SbluhmRelease 2.4.7 Fri March 4 2022
397680fbc60Sbluhm        Bug fixes:
398680fbc60Sbluhm       #572 #577  Relax fix to CVE-2022-25236 (introduced with release 2.4.5)
399680fbc60Sbluhm                    with regard to all valid URI characters (RFC 3986),
400680fbc60Sbluhm                    i.e. the following set (excluding whitespace):
401680fbc60Sbluhm                    ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz
402680fbc60Sbluhm                    0123456789 % -._~ :/?#[]@ !$&'()*+,;=
403680fbc60Sbluhm
404680fbc60Sbluhm        Other changes:
405680fbc60Sbluhm  #555 #570 #581  CMake|Windows: Store Expat version in the DLL
406680fbc60Sbluhm            #577  Document consequences of namespace separator choices not just
407680fbc60Sbluhm                    in doc/reference.html but also in header <expat.h>
408680fbc60Sbluhm            #577  Document Expat's lack of validation of namespace URIs against
409680fbc60Sbluhm                    RFC 3986, and that the XML 1.0r4 specification doesn't
410680fbc60Sbluhm                    require Expat to validate namespace URIs, and that Expat
411680fbc60Sbluhm                    may do more in that regard in future releases.
412680fbc60Sbluhm                    If you find need for strict RFC 3986 URI validation on
413680fbc60Sbluhm                    application level today, https://uriparser.github.io/ may
414680fbc60Sbluhm                    be of interest.
415680fbc60Sbluhm            #579  Fix documentation of XML_EndDoctypeDeclHandler in <expat.h>
416680fbc60Sbluhm            #575  Document that a call to XML_FreeContentModel can be done at
417680fbc60Sbluhm                    a later time from outside the element declaration handler
418680fbc60Sbluhm            #574  Make hardcoded namespace URIs easier to find in code
419680fbc60Sbluhm            #573  Update documentation on use of XML_POOR_ENTOPY on Solaris
420680fbc60Sbluhm       #569 #571  tests: Resolve use of macros NAN and INFINITY for GNU G++
421680fbc60Sbluhm                    4.8.2 on Solaris.
422680fbc60Sbluhm       #578 #580  Version info bumped from 9:6:8 to 9:7:8;
423680fbc60Sbluhm                    see https://verbump.de/ for what these numbers do
424680fbc60Sbluhm
425680fbc60Sbluhm        Special thanks to:
426680fbc60Sbluhm            Jeffrey Walton
427680fbc60Sbluhm            Johnny Jazeix
428680fbc60Sbluhm            Thijs Schreijer
429680fbc60Sbluhm
430253fd6bfSbluhmRelease 2.4.6 Sun February 20 2022
431253fd6bfSbluhm        Bug fixes:
432253fd6bfSbluhm            #566  Fix a regression introduced by the fix for CVE-2022-25313
433253fd6bfSbluhm                    in release 2.4.5 that affects applications that (1)
434253fd6bfSbluhm                    call function XML_SetElementDeclHandler and (2) are
435253fd6bfSbluhm                    parsing XML that contains nested element declarations
436253fd6bfSbluhm                    (e.g. "<!ELEMENT junk ((bar|foo|xyz+), zebra*)>").
437253fd6bfSbluhm
438253fd6bfSbluhm        Other changes:
439253fd6bfSbluhm       #567 #568  Version info bumped from 9:5:8 to 9:6:8;
440253fd6bfSbluhm                    see https://verbump.de/ for what these numbers do
441253fd6bfSbluhm
442253fd6bfSbluhm        Special thanks to:
443253fd6bfSbluhm            Matt Sergeant
444253fd6bfSbluhm            Samanta Navarro
445253fd6bfSbluhm            Sergei Trofimovich
446253fd6bfSbluhm                 and
447253fd6bfSbluhm            NixOS
448253fd6bfSbluhm            Perl XML::Parser
449253fd6bfSbluhm
450253fd6bfSbluhmRelease 2.4.5 Fri February 18 2022
451253fd6bfSbluhm        Security fixes:
452253fd6bfSbluhm            #562  CVE-2022-25235 -- Passing malformed 2- and 3-byte UTF-8
453253fd6bfSbluhm                    sequences (e.g. from start tag names) to the XML
454253fd6bfSbluhm                    processing application on top of Expat can cause
455253fd6bfSbluhm                    arbitrary damage (e.g. code execution) depending
456253fd6bfSbluhm                    on how invalid UTF-8 is handled inside the XML
457253fd6bfSbluhm                    processor; validation was not their job but Expat's.
458253fd6bfSbluhm                    Exploits with code execution are known to exist.
459253fd6bfSbluhm            #561  CVE-2022-25236 -- Passing (one or more) namespace separator
460253fd6bfSbluhm                    characters in "xmlns[:prefix]" attribute values
461253fd6bfSbluhm                    made Expat send malformed tag names to the XML
462253fd6bfSbluhm                    processor on top of Expat which can cause
463253fd6bfSbluhm                    arbitrary damage (e.g. code execution) depending
464253fd6bfSbluhm                    on such unexpectable cases are handled inside the XML
465253fd6bfSbluhm                    processor; validation was not their job but Expat's.
466253fd6bfSbluhm                    Exploits with code execution are known to exist.
467253fd6bfSbluhm            #558  CVE-2022-25313 -- Fix stack exhaustion in doctype parsing
468253fd6bfSbluhm                    that could be triggered by e.g. a 2 megabytes
469253fd6bfSbluhm                    file with a large number of opening braces.
470253fd6bfSbluhm                    Expected impact is denial of service or potentially
471253fd6bfSbluhm                    arbitrary code execution.
472253fd6bfSbluhm            #560  CVE-2022-25314 -- Fix integer overflow in function copyString;
473253fd6bfSbluhm                    only affects the encoding name parameter at parser creation
474253fd6bfSbluhm                    time which is often hardcoded (rather than user input),
475253fd6bfSbluhm                    takes a value in the gigabytes to trigger, and a 64-bit
476253fd6bfSbluhm                    machine.  Expected impact is denial of service.
477253fd6bfSbluhm            #559  CVE-2022-25315 -- Fix integer overflow in function storeRawNames;
478253fd6bfSbluhm                    needs input in the gigabytes and a 64-bit machine.
479253fd6bfSbluhm                    Expected impact is denial of service or potentially
480253fd6bfSbluhm                    arbitrary code execution.
481253fd6bfSbluhm
482253fd6bfSbluhm        Other changes:
483253fd6bfSbluhm       #557 #564  Version info bumped from 9:4:8 to 9:5:8;
484253fd6bfSbluhm                    see https://verbump.de/ for what these numbers do
485253fd6bfSbluhm
486253fd6bfSbluhm        Special thanks to:
487253fd6bfSbluhm            Ivan Fratric
488253fd6bfSbluhm            Samanta Navarro
489253fd6bfSbluhm                 and
490253fd6bfSbluhm            Google Project Zero
491253fd6bfSbluhm            JetBrains
492253fd6bfSbluhm
4937f817adeSbluhmRelease 2.4.4 Sun January 30 2022
4947f817adeSbluhm        Security fixes:
4957f817adeSbluhm            #550  CVE-2022-23852 -- Fix signed integer overflow
4967f817adeSbluhm                    (undefined behavior) in function XML_GetBuffer
4977f817adeSbluhm                    (that is also called by function XML_Parse internally)
4987f817adeSbluhm                    for when XML_CONTEXT_BYTES is defined to >0 (which is both
4997f817adeSbluhm                    common and default).
5007f817adeSbluhm                    Impact is denial of service or more.
5017f817adeSbluhm            #551  CVE-2022-23990 -- Fix unsigned integer overflow in function
5027f817adeSbluhm                    doProlog triggered by large content in element type
5037f817adeSbluhm                    declarations when there is an element declaration handler
5047f817adeSbluhm                    present (from a prior call to XML_SetElementDeclHandler).
5057f817adeSbluhm                    Impact is denial of service or more.
5067f817adeSbluhm
5077f817adeSbluhm        Bug fixes:
5087f817adeSbluhm       #544 #545  xmlwf: Fix a memory leak on output file opening error
5097f817adeSbluhm
5107f817adeSbluhm        Other changes:
5117f817adeSbluhm            #546  Autotools: Fix broken CMake support under Cygwin
5127f817adeSbluhm            #554  Windows: Add missing files to the installer to fix
5137f817adeSbluhm                    compilation with CMake from installed sources
5147f817adeSbluhm       #552 #554  Version info bumped from 9:3:8 to 9:4:8;
5157f817adeSbluhm                    see https://verbump.de/ for what these numbers do
5167f817adeSbluhm
5177f817adeSbluhm        Special thanks to:
5187f817adeSbluhm            Carlo Bramini
5197f817adeSbluhm            hwt0415
5207f817adeSbluhm            Roland Illig
5217f817adeSbluhm            Samanta Navarro
5227f817adeSbluhm                 and
5237f817adeSbluhm            Clang LeakSan and the Clang team
5247f817adeSbluhm
5252c19dcf8SbluhmRelease 2.4.3 Sun January 16 2022
5262c19dcf8Sbluhm        Security fixes:
5272c19dcf8Sbluhm       #531 #534  CVE-2021-45960 -- Fix issues with left shifts by >=29 places
5282c19dcf8Sbluhm                    resulting in
5292c19dcf8Sbluhm                      a) realloc acting as free
5302c19dcf8Sbluhm                      b) realloc allocating too few bytes
5312c19dcf8Sbluhm                      c) undefined behavior
5322c19dcf8Sbluhm                    depending on architecture and precise value
5332c19dcf8Sbluhm                    for XML documents with >=2^27+1 prefixed attributes
5342c19dcf8Sbluhm                    on a single XML tag a la
5352c19dcf8Sbluhm                    "<r xmlns:a='[..]' a:a123='[..]' [..] />"
5362c19dcf8Sbluhm                    where XML_ParserCreateNS is used to create the parser
5372c19dcf8Sbluhm                    (which needs argument "-n" when running xmlwf).
5382c19dcf8Sbluhm                    Impact is denial of service, or more.
5392c19dcf8Sbluhm       #532 #538  CVE-2021-46143 (ZDI-CAN-16157) -- Fix integer overflow
5402c19dcf8Sbluhm                    on variable m_groupSize in function doProlog leading
5412c19dcf8Sbluhm                    to realloc acting as free.
5422c19dcf8Sbluhm                    Impact is denial of service or more.
5432c19dcf8Sbluhm            #539  CVE-2022-22822 to CVE-2022-22827 -- Prevent integer overflows
5442c19dcf8Sbluhm                    near memory allocation at multiple places.  Mitre assigned
5452c19dcf8Sbluhm                    a dedicated CVE for each involved internal C function:
5462c19dcf8Sbluhm                    - CVE-2022-22822 for function addBinding
5472c19dcf8Sbluhm                    - CVE-2022-22823 for function build_model
5482c19dcf8Sbluhm                    - CVE-2022-22824 for function defineAttribute
5492c19dcf8Sbluhm                    - CVE-2022-22825 for function lookup
5502c19dcf8Sbluhm                    - CVE-2022-22826 for function nextScaffoldPart
5512c19dcf8Sbluhm                    - CVE-2022-22827 for function storeAtts
5522c19dcf8Sbluhm                    Impact is denial of service or more.
5532c19dcf8Sbluhm
5542c19dcf8Sbluhm        Other changes:
5552c19dcf8Sbluhm            #535  CMake: Make call to file(GENERATE [..]) work for CMake <3.19
5562c19dcf8Sbluhm            #541  Autotools|CMake: MinGW: Make run.sh(.in) work for Cygwin
5572c19dcf8Sbluhm                    and MSYS2 by not going through Wine on these platforms
5582c19dcf8Sbluhm       #527 #528  Address compiler warnings
5592c19dcf8Sbluhm       #533 #543  Version info bumped from 9:2:8 to 9:3:8;
5602c19dcf8Sbluhm                    see https://verbump.de/ for what these numbers do
5612c19dcf8Sbluhm
5622c19dcf8Sbluhm        Infrastructure:
5632c19dcf8Sbluhm            #536  CI: Check for realistic minimum CMake version
5642c19dcf8Sbluhm       #529 #539  CI: Cover compilation with -m32
5652c19dcf8Sbluhm            #529  CI: Store coverage reports as artifacts for download
5662c19dcf8Sbluhm            #528  CI: Upgrade Clang from 11 to 13
5672c19dcf8Sbluhm
5682c19dcf8Sbluhm        Special thanks to:
5692c19dcf8Sbluhm            An anonymous whitehat
5702c19dcf8Sbluhm            Christopher Degawa
5712c19dcf8Sbluhm            J. Peter Mugaas
5722c19dcf8Sbluhm            Tyson Smith
5732c19dcf8Sbluhm                 and
5742c19dcf8Sbluhm            GCC Farm Project
5752c19dcf8Sbluhm            Trend Micro Zero Day Initiative
5762c19dcf8Sbluhm
5772c19dcf8SbluhmRelease 2.4.2 Sun December 19 2021
5782c19dcf8Sbluhm        Other changes:
5792c19dcf8Sbluhm       #509 #510  Link againgst libm for function "isnan"
5802c19dcf8Sbluhm       #513 #514  Include expat_config.h as early as possible
5812c19dcf8Sbluhm            #498  Autotools: Include files with release archives:
5822c19dcf8Sbluhm                    - buildconf.sh
5832c19dcf8Sbluhm                    - fuzz/*.c
5849029d806Sbluhm       #507 #519  Autotools: Sync CMake templates with CMake 3.20
5852c19dcf8Sbluhm       #495 #524  CMake: MinGW: Fix pkg-config section "Libs" for
5862c19dcf8Sbluhm                    - non-release build types (e.g. -DCMAKE_BUILD_TYPE=Debug)
5872c19dcf8Sbluhm                    - multi-config CMake generators (e.g. Ninja Multi-Config)
5882c19dcf8Sbluhm       #502 #503  docs: Document that function XML_GetBuffer may return NULL
5892c19dcf8Sbluhm                    when asking for a buffer of 0 (zero) bytes size
5902c19dcf8Sbluhm       #522 #523  docs: Fix return value docs for both
5912c19dcf8Sbluhm                    XML_SetBillionLaughsAttackProtection* functions
5922c19dcf8Sbluhm       #525 #526  Version info bumped from 9:1:8 to 9:2:8;
5932c19dcf8Sbluhm                    see https://verbump.de/ for what these numbers do
5942c19dcf8Sbluhm
5952c19dcf8Sbluhm        Special thanks to:
596bd8f1dc3Sbluhm            Donghee Na
5972c19dcf8Sbluhm            Joergen Ibsen
5982c19dcf8Sbluhm            Kai Pastor
5992c19dcf8Sbluhm
60008819b41SbluhmRelease 2.4.1 Sun May 23 2021
60108819b41Sbluhm        Bug fixes:
60208819b41Sbluhm       #488 #490  Autotools: Fix installed header expat_config.h for multilib
60308819b41Sbluhm                    systems; regression introduced in 2.4.0 by pull request #486
60408819b41Sbluhm
60508819b41Sbluhm        Other changes:
60608819b41Sbluhm       #491 #492  Version info bumped from 9:0:8 to 9:1:8;
60708819b41Sbluhm                    see https://verbump.de/ for what these numbers do
60808819b41Sbluhm
60908819b41Sbluhm        Special thanks to:
61008819b41Sbluhm            Gentoo's QA check "multilib_check_headers"
61108819b41Sbluhm
61208819b41SbluhmRelease 2.4.0 Sun May 23 2021
61308819b41Sbluhm        Security fixes:
61408819b41Sbluhm   #34 #466 #484  CVE-2013-0340/CWE-776 -- Protect against billion laughs attacks
61508819b41Sbluhm                    (denial-of-service; flavors targeting CPU time or RAM or both,
61608819b41Sbluhm                    leveraging general entities or parameter entities or both)
61708819b41Sbluhm                    by tracking and limiting the input amplification factor
61808819b41Sbluhm                    (<amplification> := (<direct> + <indirect>) / <direct>).
61908819b41Sbluhm                    By conservative default, amplification up to a factor of 100.0
62008819b41Sbluhm                    is tolerated and rejection only starts after 8 MiB of output bytes
62108819b41Sbluhm                    (=<direct> + <indirect>) have been processed.
62208819b41Sbluhm                    The fix adds the following to the API:
62308819b41Sbluhm                    - A new error code XML_ERROR_AMPLIFICATION_LIMIT_BREACH to
62408819b41Sbluhm                      signals this specific condition.
62508819b41Sbluhm                    - Two new API functions ..
62608819b41Sbluhm                      - XML_SetBillionLaughsAttackProtectionMaximumAmplification and
62708819b41Sbluhm                      - XML_SetBillionLaughsAttackProtectionActivationThreshold
62808819b41Sbluhm                      .. to further tighten billion laughs protection parameters
62908819b41Sbluhm                      when desired.  Please see file "doc/reference.html" for details.
63008819b41Sbluhm                      If you ever need to increase the defaults for non-attack XML
63108819b41Sbluhm                      payload, please file a bug report with libexpat.
63208819b41Sbluhm                    - Two new XML_FEATURE_* constants ..
63308819b41Sbluhm                      - that can be queried using the XML_GetFeatureList function, and
63408819b41Sbluhm                      - that are shown in "xmlwf -v" output.
63508819b41Sbluhm                    - Two new environment variable switches ..
63608819b41Sbluhm                      - EXPAT_ACCOUNTING_DEBUG=(0|1|2|3) and
63708819b41Sbluhm                      - EXPAT_ENTITY_DEBUG=(0|1)
63808819b41Sbluhm                      .. for runtime debugging of accounting and entity processing.
63908819b41Sbluhm                      Specific behavior of these values may change in the future.
64008819b41Sbluhm                    - Two new command line arguments "-a FACTOR" and "-b BYTES"
64108819b41Sbluhm                      for xmlwf to further tighten billion laughs protection
64208819b41Sbluhm                      parameters when desired.
64308819b41Sbluhm                      If you ever need to increase the defaults for non-attack XML
64408819b41Sbluhm                      payload, please file a bug report with libexpat.
64508819b41Sbluhm
64608819b41Sbluhm        Bug fixes:
64708819b41Sbluhm       #332 #470  For (non-default) compilation with -DEXPAT_MIN_SIZE=ON (CMake)
64808819b41Sbluhm                    or CPPFLAGS=-DXML_MIN_SIZE (GNU Autotools): Fix segfault
64908819b41Sbluhm                    for UTF-16 payloads containing CDATA sections.
65008819b41Sbluhm       #485 #486  Autotools: Fix generated CMake files for non-64bit and
65108819b41Sbluhm                    non-Linux platforms (e.g. macOS and MinGW in particular)
65208819b41Sbluhm                    that were introduced with release 2.3.0
65308819b41Sbluhm
65408819b41Sbluhm        Other changes:
65508819b41Sbluhm       #468 #469  xmlwf: Improve help output and the xmlwf man page
65608819b41Sbluhm            #463  xmlwf: Improve maintainability through some refactoring
65708819b41Sbluhm            #477  xmlwf: Fix man page DocBook validity
6589029d806Sbluhm            #456  Autotools: Sync CMake templates with CMake 3.18
65908819b41Sbluhm       #458 #459  CMake: Support absolute paths for both CMAKE_INSTALL_LIBDIR
66008819b41Sbluhm                    and CMAKE_INSTALL_INCLUDEDIR
66108819b41Sbluhm       #471 #481  CMake: Add support for standard variable BUILD_SHARED_LIBS
66208819b41Sbluhm            #457  Unexpose symbol _INTERNAL_trim_to_complete_utf8_characters
66308819b41Sbluhm            #467  Resolve macro HAVE_EXPAT_CONFIG_H
66408819b41Sbluhm            #472  Delete unused legacy helper file "conftools/PrintPath"
66508819b41Sbluhm       #473 #483  Improve attribution
66608819b41Sbluhm  #464 #465 #477  doc/reference.html: Fix XHTML validity
66708819b41Sbluhm       #475 #478  doc/reference.html: Replace the 90s look by OK.css
66808819b41Sbluhm            #479  Version info bumped from 8:0:7 to 9:0:8
66908819b41Sbluhm                    due to addition of new symbols and error codes;
67008819b41Sbluhm                    see https://verbump.de/ for what these numbers do
67108819b41Sbluhm
67208819b41Sbluhm        Infrastructure:
67308819b41Sbluhm            #456  CI: Enable periodic runs
67408819b41Sbluhm            #457  CI: Start covering the list of exported symbols
67508819b41Sbluhm            #474  CI: Isolate coverage task
67608819b41Sbluhm       #476 #482  CI: Adapt to breaking changes in image "ubuntu-18.04"
67708819b41Sbluhm            #477  CI: Cover well-formedness and DocBook/XHTML validity
67808819b41Sbluhm                    of doc/reference.html and doc/xmlwf.xml
67908819b41Sbluhm
68008819b41Sbluhm        Special thanks to:
68108819b41Sbluhm            Dimitry Andric
68208819b41Sbluhm            Eero Helenius
68308819b41Sbluhm            Nick Wellnhofer
68408819b41Sbluhm            Rhodri James
68508819b41Sbluhm            Tomas Korbar
68608819b41Sbluhm            Yury Gribov
68708819b41Sbluhm                 and
68808819b41Sbluhm            Clang LeakSan
68908819b41Sbluhm            JetBrains
69008819b41Sbluhm            OSS-Fuzz
69108819b41Sbluhm
692326b8ed6SbluhmRelease 2.3.0 Thu March 25 2021
693326b8ed6Sbluhm        Bug fixes:
694326b8ed6Sbluhm            #438  When calling XML_ParseBuffer without a prior successful call to
695326b8ed6Sbluhm                    XML_GetBuffer as a user, no longer trigger undefined behavior
696326b8ed6Sbluhm                    (by adding an integer to a NULL pointer) but rather return
697326b8ed6Sbluhm                    XML_STATUS_ERROR and set the error code to (new) code
698326b8ed6Sbluhm                    XML_ERROR_NO_BUFFER. Found by UBSan (UndefinedBehaviorSanitizer)
699326b8ed6Sbluhm                    of Clang 11 (but not Clang 9).
700326b8ed6Sbluhm            #444  xmlwf: Exit status 2 was used for both:
701326b8ed6Sbluhm                    - malformed input files (documented) and
702326b8ed6Sbluhm                    - invalid command-line arguments (undocumented).
703326b8ed6Sbluhm                    The case of invalid command-line arguments now
704326b8ed6Sbluhm                    has its own exit status 4, resolving the ambiguity.
705326b8ed6Sbluhm
706326b8ed6Sbluhm        Other changes:
707326b8ed6Sbluhm            #439  xmlwf: Add argument -k to allow continuing after
708326b8ed6Sbluhm                    non-fatal errors
709326b8ed6Sbluhm            #439  xmlwf: Add section about exit status to the -h help output
710326b8ed6Sbluhm  #422 #426 #447  Windows: Drop support for Visual Studio <=14.0/2015
711326b8ed6Sbluhm            #434  Windows: CMake: Detect unsupported Visual Studio at
712326b8ed6Sbluhm                    configure time (rather than at compile time)
713326b8ed6Sbluhm       #382 #428  testrunner: Make verbose mode (argument "-v") report
714326b8ed6Sbluhm                    about passed tests, and make default mode report about
715326b8ed6Sbluhm                    failures, as well.
716326b8ed6Sbluhm            #442  CMake: Call "enable_language(CXX)" prior to tinkering
717326b8ed6Sbluhm                    with CMAKE_CXX_* variables
718326b8ed6Sbluhm            #448  Document use of libexpat from a CMake-based project
719326b8ed6Sbluhm            #451  Autotools: Install CMake files as generated by CMake 3.19.6
720326b8ed6Sbluhm                    so that users with "find_package(expat [..] CONFIG [..])"
721326b8ed6Sbluhm                    are served on distributions that are *not* using the CMake
722326b8ed6Sbluhm                    build system inside for libexpat packaging
723326b8ed6Sbluhm       #436 #437  Autotools: Drop obsolescent macro AC_HEADER_STDC
724326b8ed6Sbluhm       #450 #452  Autotools: Resolve use of obsolete macro AC_CONFIG_HEADER
725326b8ed6Sbluhm            #441  Address compiler warnings
726326b8ed6Sbluhm            #443  Version info bumped from 7:12:6 to 8:0:7
727326b8ed6Sbluhm                    due to addition of error code XML_ERROR_NO_BUFFER
728326b8ed6Sbluhm                    (see https://verbump.de/ for what these numbers do)
729326b8ed6Sbluhm
730326b8ed6Sbluhm        Infrastructure:
731326b8ed6Sbluhm       #435 #446  Replace Travis CI by GitHub Actions
732326b8ed6Sbluhm
733326b8ed6Sbluhm        Special thanks to:
734326b8ed6Sbluhm            Alexander Richardson
735326b8ed6Sbluhm            Oleksandr Popovych
736326b8ed6Sbluhm            Thomas Beutlich
737326b8ed6Sbluhm            Tim Bray
738326b8ed6Sbluhm                 and
739326b8ed6Sbluhm            Clang LeakSan, Clang 11 UBSan and the Clang team
740326b8ed6Sbluhm
7412a4a206eSbluhmRelease 2.2.10 Sat October 3 2020
7422a4a206eSbluhm        Bug fixes:
7432a4a206eSbluhm  #390 #395 #398  Fix undefined behavior during parsing caused by
7442a4a206eSbluhm                    pointer arithmetic with NULL pointers
7452a4a206eSbluhm       #404 #405  Fix reading uninitialized variable during parsing
7462a4a206eSbluhm            #406  xmlwf: Add missing check for malloc NULL return
7472a4a206eSbluhm
7482a4a206eSbluhm        Other changes:
7492a4a206eSbluhm            #396  Windows: Drop support for Visual Studio <=8.0/2005
7502a4a206eSbluhm            #409  Windows: Add missing file "Changes" to the installer
7512a4a206eSbluhm                    to fix compilation with CMake from installed sources
7522a4a206eSbluhm            #403  xmlwf: Document exit codes in xmlwf manpage and
7532a4a206eSbluhm                    exit with code 3 (rather than code 1) for output errors
7542a4a206eSbluhm                    when used with "-d DIRECTORY"
7552a4a206eSbluhm       #356 #359  MinGW: Provide declaration of rand_s for mingwrt <5.3.0
7562a4a206eSbluhm       #383 #392  Autotools: Use -Werror while configure tests the compiler
7572a4a206eSbluhm                    for supported compile flags to avoid false positives
7582a4a206eSbluhm  #383 #393 #394  Autotools: Improve handling of user (C|CPP|CXX|LD)FLAGS,
7592a4a206eSbluhm                    e.g. ensure that they have the last word over flags added
7602a4a206eSbluhm                    while running ./configure
7612a4a206eSbluhm            #360  CMake: Create libexpatw.{dll,so} and expatw.pc (with emphasis
7622a4a206eSbluhm                    on suffix "w") with -DEXPAT_CHAR_TYPE=(ushort|wchar_t)
7632a4a206eSbluhm            #360  CMake: Detect and deny unsupported build combinations
7642a4a206eSbluhm                    involving -DEXPAT_CHAR_TYPE=(ushort|wchar_t)
7652a4a206eSbluhm            #360  CMake: Install pre-compiled shipped xmlwf.1 manpage in case
7662a4a206eSbluhm                    of -DEXPAT_BUILD_DOCS=OFF
7672a4a206eSbluhm  #375 #380 #419  CMake: Fix use of Expat by means of add_subdirectory
7682a4a206eSbluhm       #407 #408  CMake: Keep expat target name constant at "expat"
7692a4a206eSbluhm                    (i.e. refrain from using the target name to control
7702a4a206eSbluhm                    build artifact filenames)
7712a4a206eSbluhm            #385  CMake: Fix compilation with -DEXPAT_SHARED_LIBS=OFF for
7722a4a206eSbluhm                    Windows
7732a4a206eSbluhm                  CMake: Expose man page compilation as target "xmlwf-manpage"
7742a4a206eSbluhm       #413 #414  CMake: Introduce option EXPAT_BUILD_PKGCONFIG
7752a4a206eSbluhm                    to control generation of pkg-config file "expat.pc"
7762a4a206eSbluhm            #424  CMake: Add minimalistic support for building binary packages
7772a4a206eSbluhm                    with CMake target "package"; based on CPack
7782a4a206eSbluhm            #366  CMake: Add option -DEXPAT_OSSFUZZ_BUILD=(ON|OFF) with
7792a4a206eSbluhm                    default OFF to build fuzzer code against OSS-Fuzz and
7802a4a206eSbluhm                    related environment variable LIB_FUZZING_ENGINE
7812a4a206eSbluhm            #354  Fix testsuite for -DEXPAT_DTD=OFF and -DEXPAT_NS=OFF, each
7822a4a206eSbluhm    #354 #355 ..
7832a4a206eSbluhm       #356 #412  Address compiler warnings
7842a4a206eSbluhm       #368 #369  Address pngcheck warnings with doc/*.png images
785326b8ed6Sbluhm            #425  Version info bumped from 7:11:6 to 7:12:6
7862a4a206eSbluhm
7872a4a206eSbluhm        Special thanks to:
7882a4a206eSbluhm            asavah
7892a4a206eSbluhm            Ben Wagner
7902a4a206eSbluhm            Bhargava Shastry
7912a4a206eSbluhm            Frank Landgraf
7922a4a206eSbluhm            Jeffrey Walton
7932a4a206eSbluhm            Joe Orton
7942a4a206eSbluhm            Kleber Tarcísio
7952a4a206eSbluhm            Ma Lin
7962a4a206eSbluhm            Maciej Sroczyński
7972a4a206eSbluhm            Mohammed Khajapasha
7982a4a206eSbluhm            Vadim Zeitlin
7992a4a206eSbluhm                 and
8002a4a206eSbluhm            Cppcheck 2.0 and the Cppcheck team
8012a4a206eSbluhm
8022a4a206eSbluhmRelease 2.2.9 Wed September 25 2019
8032a4a206eSbluhm        Other changes:
8042a4a206eSbluhm                  examples: Drop executable bits from elements.c
8052a4a206eSbluhm            #349  Windows: Change the name of the Windows DLLs from expat*.dll
8062a4a206eSbluhm                    to libexpat*.dll once more (regression from 2.2.8, first
8072a4a206eSbluhm                    fixed in 1.95.3, issue #61 on SourceForge today,
8082a4a206eSbluhm                    was issue #432456 back then); needs a fix due
8092a4a206eSbluhm                    case-insensitive file systems on Windows and the fact that
8102a4a206eSbluhm                    Perl's XML::Parser::Expat compiles into Expat.dll.
8112a4a206eSbluhm            #347  Windows: Only define _CRT_RAND_S if not defined
8122a4a206eSbluhm                  Version info bumped from 7:10:6 to 7:11:6
8132a4a206eSbluhm
8142a4a206eSbluhm        Special thanks to:
8152a4a206eSbluhm            Ben Wagner
8162a4a206eSbluhm
8172a4a206eSbluhmRelease 2.2.8 Fri September 13 2019
81828ce3119Sbluhm        Security fixes:
81928ce3119Sbluhm       #317 #318  CVE-2019-15903 -- Fix heap overflow triggered by
82028ce3119Sbluhm                    XML_GetCurrentLineNumber (or XML_GetCurrentColumnNumber),
82128ce3119Sbluhm                    and deny internal entities closing the doctype;
82228ce3119Sbluhm                    fixed in commit c20b758c332d9a13afbbb276d30db1d183a85d43
82328ce3119Sbluhm
82428ce3119Sbluhm        Bug fixes:
82528ce3119Sbluhm            #240  Fix cases where XML_StopParser did not have any effect
82628ce3119Sbluhm                    when called from inside of an end element handler
82728ce3119Sbluhm            #341  xmlwf: Fix exit code for operation without "-d DIRECTORY";
82828ce3119Sbluhm                    previously, only "-d DIRECTORY" would give you a proper
82928ce3119Sbluhm                    exit code:
83028ce3119Sbluhm                      # xmlwf -d . <<<'<not well-formed>' 2>/dev/null ; echo $?
83128ce3119Sbluhm                      2
83228ce3119Sbluhm                      # xmlwf <<<'<not well-formed>' 2>/dev/null ; echo $?
83328ce3119Sbluhm                      0
83428ce3119Sbluhm                    Now both cases return exit code 2.
83528ce3119Sbluhm
83628ce3119Sbluhm        Other changes:
83728ce3119Sbluhm       #299 #302  Windows: Replace LoadLibrary hack to access
83828ce3119Sbluhm                    unofficial API function SystemFunction036 (RtlGenRandom)
83928ce3119Sbluhm                    by using official API function rand_s (needs WinXP+)
84028ce3119Sbluhm            #325  Windows: Drop support for Visual Studio <=7.1/2003
84128ce3119Sbluhm                    and document supported compilers in README.md
84228ce3119Sbluhm            #286  Windows: Remove COM code from xmlwf; in case it turns
84328ce3119Sbluhm                    out needed later, there will be a dedicated repository
84428ce3119Sbluhm                    below https://github.com/libexpat/ for that code
84528ce3119Sbluhm            #322  Windows: Remove explicit MSVC solution and project files.
84628ce3119Sbluhm                    You can generate Visual Studio solution files through
84728ce3119Sbluhm                    CMake, e.g.: cmake -G"Visual Studio 15 2017" .
84828ce3119Sbluhm            #338  xmlwf: Make "xmlwf -h" help output more friendly
84928ce3119Sbluhm            #339  examples: Improve elements.c
85028ce3119Sbluhm       #244 #264  Autotools: Add argument --enable-xml-attr-info
85128ce3119Sbluhm       #239 #301  Autotools: Add arguments
85228ce3119Sbluhm                    --with-getrandom
85328ce3119Sbluhm                    --without-getrandom
85428ce3119Sbluhm                    --with-sys-getrandom
85528ce3119Sbluhm                    --without-sys-getrandom
85628ce3119Sbluhm       #312 #343  Autotools: Fix linking issues with "./configure LD=clang"
85728ce3119Sbluhm                  Autotools: Fix "make run-xmltest" for out-of-source builds
85828ce3119Sbluhm       #329 #336  CMake: Pull all options from Expat <=2.2.7 into namespace
85928ce3119Sbluhm                    prefix EXPAT_ with the exception of DOCBOOK_TO_MAN:
86028ce3119Sbluhm                    - BUILD_doc            -> EXPAT_BUILD_DOCS (plural)
86128ce3119Sbluhm                    - BUILD_examples       -> EXPAT_BUILD_EXAMPLES
86228ce3119Sbluhm                    - BUILD_shared         -> EXPAT_SHARED_LIBS
86328ce3119Sbluhm                    - BUILD_tests          -> EXPAT_BUILD_TESTS
86428ce3119Sbluhm                    - BUILD_tools          -> EXPAT_BUILD_TOOLS
86528ce3119Sbluhm                    - DOCBOOK_TO_MAN       -> DOCBOOK_TO_MAN (unchanged)
86628ce3119Sbluhm                    - INSTALL              -> EXPAT_ENABLE_INSTALL
86728ce3119Sbluhm                    - MSVC_USE_STATIC_CRT  -> EXPAT_MSVC_STATIC_CRT
86828ce3119Sbluhm                    - USE_libbsd           -> EXPAT_WITH_LIBBSD
86928ce3119Sbluhm                    - WARNINGS_AS_ERRORS   -> EXPAT_WARNINGS_AS_ERRORS
87028ce3119Sbluhm                    - XML_CONTEXT_BYTES    -> EXPAT_CONTEXT_BYTES
87128ce3119Sbluhm                    - XML_DEV_URANDOM      -> EXPAT_DEV_URANDOM
87228ce3119Sbluhm                    - XML_DTD              -> EXPAT_DTD
87328ce3119Sbluhm                    - XML_NS               -> EXPAT_NS
87428ce3119Sbluhm                    - XML_UNICODE          -> EXPAT_CHAR_TYPE=ushort (!)
87528ce3119Sbluhm                    - XML_UNICODE_WCHAR_T  -> EXPAT_CHAR_TYPE=wchar_t (!)
87628ce3119Sbluhm       #244 #264  CMake: Add argument -DEXPAT_ATTR_INFO=(ON|OFF),
87728ce3119Sbluhm                    default OFF
87828ce3119Sbluhm            #326  CMake: Add argument -DEXPAT_LARGE_SIZE=(ON|OFF),
87928ce3119Sbluhm                    default OFF
88028ce3119Sbluhm            #328  CMake: Add argument -DEXPAT_MIN_SIZE=(ON|OFF),
88128ce3119Sbluhm                    default OFF
88228ce3119Sbluhm       #239 #277  CMake: Add arguments
88328ce3119Sbluhm                    -DEXPAT_WITH_GETRANDOM=(ON|OFF|AUTO), default AUTO
88428ce3119Sbluhm                    -DEXPAT_WITH_SYS_GETRANDOM=(ON|OFF|AUTO), default AUTO
88528ce3119Sbluhm            #326  CMake: Install expat_config.h to include directory
88628ce3119Sbluhm            #326  CMake: Generate and install configuration files for
88728ce3119Sbluhm                    future find_package(expat [..] CONFIG [..])
88828ce3119Sbluhm                  CMake: Now produces a summary of applied configuration
88928ce3119Sbluhm                  CMake: Require C++ compiler only when tests are enabled
89028ce3119Sbluhm            #330  CMake: Fix compilation for 16bit character types,
89128ce3119Sbluhm                    i.e. ex -DXML_UNICODE=ON (and ex -DXML_UNICODE_WCHAR_T=ON)
89228ce3119Sbluhm            #265  CMake: Fix linking with MinGW
89328ce3119Sbluhm            #330  CMake: Add full support for MinGW; to enable, use
89428ce3119Sbluhm                    -DCMAKE_TOOLCHAIN_FILE=[expat]/cmake/mingw-toolchain.cmake
89528ce3119Sbluhm            #330  CMake: Port "make run-xmltest" from GNU Autotools to CMake
89628ce3119Sbluhm            #316  CMake: Windows: Make binary postfix match MSVC
89728ce3119Sbluhm                    Old: expat[d].lib
89828ce3119Sbluhm                    New: expat[w][d][MD|MT].lib
89928ce3119Sbluhm                  CMake: Migrate files from Windows to Unix line endings
90028ce3119Sbluhm            #308  CMake: Integrate OSS-Fuzz fuzzers, option
90128ce3119Sbluhm                    -DEXPAT_BUILD_FUZZERS=(ON|OFF), default OFF
90228ce3119Sbluhm             #14  Drop an OpenVMS support leftover
90328ce3119Sbluhm    #235 #268 ..
90428ce3119Sbluhm    #270 #310 ..
90528ce3119Sbluhm  #313 #331 #333  Address compiler warnings
90628ce3119Sbluhm    #282 #283 ..
90728ce3119Sbluhm       #284 #285  Address cppcheck warnings
90828ce3119Sbluhm       #294 #295  Address Clang Static Analyzer warnings
90928ce3119Sbluhm        #24 #293  Mass-apply clang-format 9 (and ensure conformance during CI)
91028ce3119Sbluhm                  Version info bumped from 7:9:6 to 7:10:6
91128ce3119Sbluhm
91228ce3119Sbluhm        Special thanks to:
91328ce3119Sbluhm            David Loffredo
91428ce3119Sbluhm            Joonun Jang
91528ce3119Sbluhm            Kishore Kunche
91628ce3119Sbluhm            Marco Maggi
91728ce3119Sbluhm            Mitch Phillips
9182a4a206eSbluhm            Mohammed Khajapasha
91928ce3119Sbluhm            Rolf Ade
92028ce3119Sbluhm            xantares
92128ce3119Sbluhm            Zhongyuan Zhou
92228ce3119Sbluhm
92304da3532SbluhmRelease 2.2.7 Wed June 19 2019
92404da3532Sbluhm        Security fixes:
92528ce3119Sbluhm       #186 #262  CVE-2018-20843 -- Fix extraction of namespace prefixes from
92628ce3119Sbluhm                    XML names; XML names with multiple colons could end up in
92728ce3119Sbluhm                    the wrong namespace, and take a high amount of RAM and CPU
92804da3532Sbluhm                    resources while processing, opening the door to
92904da3532Sbluhm                    use for denial-of-service attacks
93004da3532Sbluhm
93104da3532Sbluhm        Other changes:
93204da3532Sbluhm       #195 #197  Autotools/CMake: Utilize -fvisibility=hidden to stop
93304da3532Sbluhm                    exporting non-API symbols
93404da3532Sbluhm            #227  Autotools: Add --without-examples and --without-tests
93504da3532Sbluhm            #228  Autotools: Modernize configure.ac
93604da3532Sbluhm       #245 #246  Autotools: Fix check for -fvisibility=hidden for Clang
93704da3532Sbluhm       #247 #248  Autotools: Fix compilation for lack of docbook2x-man
93804da3532Sbluhm       #236 #258  Autotools: Produce .tar.{gz,lz,xz} release archives
93904da3532Sbluhm            #212  CMake: Make libdir of pkgconfig expat.pc support multilib
94004da3532Sbluhm       #158 #263  CMake: Build man page in PROJECT_BINARY_DIR not _SOURCE_DIR
94104da3532Sbluhm            #219  Remove fallback to bcopy, assume that memmove(3) exists
94204da3532Sbluhm            #257  Use portable "/usr/bin/env bash" shebang (e.g. for OpenBSD)
94304da3532Sbluhm            #243  Windows: Fix syntax of .def module definition files
94404da3532Sbluhm                  Version info bumped from 7:8:6 to 7:9:6
94504da3532Sbluhm
94604da3532Sbluhm        Special thanks to:
94704da3532Sbluhm            Benjamin Peterson
94804da3532Sbluhm            Caolán McNamara
94904da3532Sbluhm            Hanno Böck
95004da3532Sbluhm            KangLin
95104da3532Sbluhm            Kishore Kunche
95204da3532Sbluhm            Marco Maggi
95304da3532Sbluhm            Rhodri James
95404da3532Sbluhm            Sebastian Dröge
95504da3532Sbluhm            userwithuid
95604da3532Sbluhm            Yury Gribov
95704da3532Sbluhm
958797786e5SbluhmRelease 2.2.6 Sun August 12 2018
959797786e5Sbluhm        Bug fixes:
960797786e5Sbluhm       #170 #206  Avoid doing arithmetic with NULL pointers in XML_GetBuffer
961797786e5Sbluhm       #204 #205  Fix 2.2.5 regression with suspend-resume while parsing
962797786e5Sbluhm                    a document like '<root/>'
963797786e5Sbluhm
964797786e5Sbluhm        Other changes:
965797786e5Sbluhm       #165 #168  Autotools: Fix docbook-related configure syntax error
966797786e5Sbluhm            #166  Autotools: Avoid grep option `-q` for Solaris
967797786e5Sbluhm            #167  Autotools: Support
968797786e5Sbluhm                    ./configure DOCBOOK_TO_MAN="xmlto man --skip-validation"
969797786e5Sbluhm       #159 #167  Autotools: Support DOCBOOK_TO_MAN command which produces
970797786e5Sbluhm                    xmlwf.1 rather than XMLWF.1; also covers case insensitive
971797786e5Sbluhm                    file systems
972797786e5Sbluhm            #181  Autotools: Drop -rpath option passed to libtool
973797786e5Sbluhm            #188  Autotools: Detect and deny SGML docbook2man as ours is XML
974797786e5Sbluhm            #188  Autotools/CMake: Support command db2x_docbook2man as well
975797786e5Sbluhm            #174  CMake: Introduce option WARNINGS_AS_ERRORS, defaults to OFF
976797786e5Sbluhm       #184 #185  CMake: Introduce option MSVC_USE_STATIC_CRT, defaults to OFF
977797786e5Sbluhm       #207 #208  CMake: Introduce option XML_UNICODE and XML_UNICODE_WCHAR_T,
978797786e5Sbluhm                    both defaulting to OFF
979797786e5Sbluhm            #175  CMake: Prefer check_symbol_exists over check_function_exists
980797786e5Sbluhm            #176  CMake: Create the same pkg-config file as with GNU Autotools
981797786e5Sbluhm       #178 #179  CMake: Use GNUInstallDirs module to set proper defaults for
982797786e5Sbluhm                    install directories
983797786e5Sbluhm            #208  CMake: Utilize expat_config.h.cmake for XML_DEV_URANDOM
984797786e5Sbluhm            #180  Windows: Fix compilation of test suite for Visual Studio 2008
985797786e5Sbluhm  #131 #173 #202  Address compiler warnings
986797786e5Sbluhm  #187 #190 #200  Fix miscellaneous typos
987797786e5Sbluhm                  Version info bumped from 7:7:6 to 7:8:6
988797786e5Sbluhm
989797786e5Sbluhm        Special thanks to:
990797786e5Sbluhm            Anton Maklakov
991797786e5Sbluhm            Benjamin Peterson
992797786e5Sbluhm            Brad King
993797786e5Sbluhm            Franek Korta
994797786e5Sbluhm            Frank Rast
995797786e5Sbluhm            Joe Orton
996797786e5Sbluhm            luzpaz
997797786e5Sbluhm            Pedro Vicente
998797786e5Sbluhm            Rainer Jung
999797786e5Sbluhm            Rhodri James
1000797786e5Sbluhm            Rolf Ade
1001797786e5Sbluhm            Rolf Eike Beer
1002797786e5Sbluhm            Thomas Beutlich
1003797786e5Sbluhm            Tomasz Kłoczko
1004797786e5Sbluhm
10059b8e2351SbluhmRelease 2.2.5 Tue October 31 2017
10069b8e2351Sbluhm        Bug fixes:
10079b8e2351Sbluhm              #8  If the parser runs out of memory, make sure its internal
10089b8e2351Sbluhm                    state reflects the memory it actually has, not the memory
10099b8e2351Sbluhm                    it wanted to have.
10109b8e2351Sbluhm             #11  The default handler wasn't being called when it should for
10119b8e2351Sbluhm                    a SYSTEM or PUBLIC doctype if an entity declaration handler
10129b8e2351Sbluhm                    was registered.
10139b8e2351Sbluhm       #137 #138  Fix a case of mistakenly reported parsing success where
10149b8e2351Sbluhm                    XML_StopParser was called from an element handler
10159b8e2351Sbluhm            #162  Function XML_ErrorString was returning NULL rather than
10169b8e2351Sbluhm                    a message for code XML_ERROR_INVALID_ARGUMENT
10179b8e2351Sbluhm                    introduced with release 2.2.1
10189b8e2351Sbluhm
10199b8e2351Sbluhm        Other changes:
10209b8e2351Sbluhm            #106  xmlwf: Add argument -N adding notation declarations
10219b8e2351Sbluhm        #75 #106  Test suite: Resolve expected failure cases where xmlwf
10229b8e2351Sbluhm                    output was incomplete
10239b8e2351Sbluhm            #127  Windows: Fix test suite compilation
10249b8e2351Sbluhm       #126 #127  Windows: Fix compilation for Visual Studio 2012
1025797786e5Sbluhm                  Windows: Upgrade shipped project files to Visual Studio 2017
10269b8e2351Sbluhm        #33 #132  tests: Mass-fix compilation for XML_UNICODE_WCHAR_T
10279b8e2351Sbluhm            #129  examples: Fix compilation for XML_UNICODE_WCHAR_T
10289b8e2351Sbluhm            #130  benchmark: Fix compilation for XML_UNICODE_WCHAR_T
10299b8e2351Sbluhm            #144  xmlwf: Fix compilation for XML_UNICODE_WCHAR_T; still needs
10309b8e2351Sbluhm                    Windows or MinGW for 2-byte wchar_t
10319b8e2351Sbluhm              #9  Address two Clang Static Analyzer false positives
10329b8e2351Sbluhm             #59  Resolve troublesome macros hiding parser struct membership
10339b8e2351Sbluhm                    and dereferencing that pointer
10349b8e2351Sbluhm              #6  Resolve superfluous internal malloc/realloc switch
10359b8e2351Sbluhm       #153 #155  Improve docbook2x-man detection
10369b8e2351Sbluhm            #160  Undefine NDEBUG in the test suite (rather than rejecting it)
10379b8e2351Sbluhm            #161  Address compiler warnings
10389b8e2351Sbluhm                  Version info bumped from 7:6:6 to 7:7:6
10399b8e2351Sbluhm
10409b8e2351Sbluhm        Special thanks to:
10419b8e2351Sbluhm            Benbuck Nason
10429b8e2351Sbluhm            Hans Wennborg
10439b8e2351Sbluhm            José Gutiérrez de la Concha
10449b8e2351Sbluhm            Pedro Monreal Gonzalez
10459b8e2351Sbluhm            Rhodri James
10469b8e2351Sbluhm            Rolf Ade
10479b8e2351Sbluhm            Stephen Groat
10489b8e2351Sbluhm                 and
10499b8e2351Sbluhm            Core Infrastructure Initiative
10509b8e2351Sbluhm
10519b8e2351SbluhmRelease 2.2.4 Sat August 19 2017
10522e724bc9Sbluhm        Bug fixes:
10532e724bc9Sbluhm            #115  Fix copying of partial characters for UTF-8 input
10542e724bc9Sbluhm
10552e724bc9Sbluhm        Other changes:
10562e724bc9Sbluhm            #109  Fix "make check" for non-x86 architectures that default
10572e724bc9Sbluhm                    to unsigned type char (-128..127 rather than 0..255)
10582e724bc9Sbluhm            #109  coverage.sh: Cover -funsigned-char
10592e724bc9Sbluhm                  Autotools: Introduce --without-xmlwf argument
10602e724bc9Sbluhm             #65  Autotools: Replace handwritten Makefile with GNU Automake
10612e724bc9Sbluhm             #43  CMake: Auto-detect high quality entropy extractors, add new
10622e724bc9Sbluhm                    option USE_libbsd=ON to use arc4random_buf of libbsd
10632e724bc9Sbluhm             #74  CMake: Add -fno-strict-aliasing only where supported
10642e724bc9Sbluhm            #114  CMake: Always honor manually set BUILD_* options
10652e724bc9Sbluhm            #114  CMake: Compile man page if docbook2x-man is available, only
10662e724bc9Sbluhm            #117  Include file tests/xmltest.log.expected in source tarball
10672e724bc9Sbluhm                    (required for "make run-xmltest")
10682e724bc9Sbluhm            #117  Include (existing) Visual Studio 2013 files in source tarball
10692e724bc9Sbluhm                  Improve test suite error output
10702e724bc9Sbluhm            #111  Fix some typos in documentation
10712e724bc9Sbluhm                  Version info bumped from 7:5:6 to 7:6:6
10722e724bc9Sbluhm
10732e724bc9Sbluhm        Special thanks to:
10742e724bc9Sbluhm            Jakub Wilk
10752e724bc9Sbluhm            Joe Orton
10762e724bc9Sbluhm            Lin Tian
10772e724bc9Sbluhm            Rolf Eike Beer
10782e724bc9Sbluhm
10795837d4fcSbluhmRelease 2.2.3 Wed August 2 2017
10805837d4fcSbluhm        Security fixes:
10815837d4fcSbluhm             #82  CVE-2017-11742 -- Windows: Fix DLL hijacking vulnerability
10825837d4fcSbluhm                    using Steve Holme's LoadLibrary wrapper for/of cURL
10835837d4fcSbluhm
10845837d4fcSbluhm        Bug fixes:
10855837d4fcSbluhm             #85  Fix a dangling pointer issue related to realloc
10865837d4fcSbluhm
10875837d4fcSbluhm        Other changes:
10885837d4fcSbluhm                  Increase code coverage
10895837d4fcSbluhm             #91  Linux: Allow getrandom to fail if nonblocking pool has not
10905837d4fcSbluhm                    yet been initialized and read /dev/urandom then, instead.
10915837d4fcSbluhm                    This is in line with what recent Python does.
10925837d4fcSbluhm             #81  Pre-10.7/Lion macOS: Support entropy from arc4random
10935837d4fcSbluhm             #86  Check that a UTF-16 encoding in an XML declaration has the
10945837d4fcSbluhm                    right endianness
10955837d4fcSbluhm        #4 #5 #7  Recover correctly when some reallocations fail
10965837d4fcSbluhm                  Repair "./configure && make" for systems without any
10975837d4fcSbluhm                    provider of high quality entropy
10985837d4fcSbluhm                    and try reading /dev/urandom on those
10995837d4fcSbluhm                  Ensure that user-defined character encodings have converter
11005837d4fcSbluhm                    functions when they are needed
11015837d4fcSbluhm                  Fix mis-leading description of argument -c in xmlwf.1
11025837d4fcSbluhm                  Rely on macro HAVE_ARC4RANDOM_BUF (rather than __CloudABI__)
11035837d4fcSbluhm                    for CloudABI
11045837d4fcSbluhm            #100  Fix use of SIPHASH_MAIN in siphash.h
11055837d4fcSbluhm             #23  Test suite: Fix memory leaks
11065837d4fcSbluhm                  Version info bumped from 7:4:6 to 7:5:6
11075837d4fcSbluhm
11085837d4fcSbluhm        Special thanks to:
11095837d4fcSbluhm            Chanho Park
11105837d4fcSbluhm            Joe Orton
11115837d4fcSbluhm            Pascal Cuoq
11125837d4fcSbluhm            Rhodri James
11135837d4fcSbluhm            Simon McVittie
11145837d4fcSbluhm            Vadim Zeitlin
11155837d4fcSbluhm            Viktor Szakats
11165837d4fcSbluhm                 and
11175837d4fcSbluhm            Core Infrastructure Initiative
11185837d4fcSbluhm
11190d60d187SbluhmRelease 2.2.2 Wed July 12 2017
11200d60d187Sbluhm        Security fixes:
11210d60d187Sbluhm             #43  Protect against compilation without any source of high
11220d60d187Sbluhm                    quality entropy enabled, e.g. with CMake build system;
11230d60d187Sbluhm                    commit ff0207e6076e9828e536b8d9cd45c9c92069b895
11240d60d187Sbluhm             #60  Windows with _UNICODE:
11250d60d187Sbluhm                    Unintended use of LoadLibraryW with a non-wide string
11260d60d187Sbluhm                    resulted in failure to load advapi32.dll and degradation
11270d60d187Sbluhm                    in quality of used entropy when compiled with _UNICODE for
11280d60d187Sbluhm                    Windows; you can launch existing binaries with
11290d60d187Sbluhm                    EXPAT_ENTROPY_DEBUG=1 in the environment to inspect the
11300d60d187Sbluhm                    quality of entropy used during runtime; commits
11310d60d187Sbluhm                    * 95b95032f907ef1cd17ee7a9a1768010a825d61d
11320d60d187Sbluhm                    * 73a5a2e9c081f49f2d775cf7ced864158b68dc80
11330d60d187Sbluhm   [MOX-006]      Fix non-NULL parser parameter validation in XML_Parse;
11340d60d187Sbluhm                    resulted in NULL dereference, previously;
11350d60d187Sbluhm                    commit ac256dafdffc9622ab0dc2c62fcecb0dfcfa71fe
11360d60d187Sbluhm
11370d60d187Sbluhm        Bug fixes:
11380d60d187Sbluhm             #69  Fix improper use of unsigned long long integer literals
11390d60d187Sbluhm
11400d60d187Sbluhm        Other changes:
11410d60d187Sbluhm             #73  Start requiring a C99 compiler
11420d60d187Sbluhm             #49  Fix "==" Bashism in configure script
11430d60d187Sbluhm             #50  Fix too eager getrandom detection for Debian GNU/kFreeBSD
11440d60d187Sbluhm             #52    and macOS
11450d60d187Sbluhm             #51  Address lack of stdint.h in Visual Studio 2003 to 2008
11460d60d187Sbluhm             #58  Address compile warnings
11470d60d187Sbluhm             #68  Fix "./buildconf.sh && ./configure" for some versions
11480d60d187Sbluhm                    of Dash for /bin/sh
11490d60d187Sbluhm             #72  CMake: Ease use of Expat in context of a parent project
11502e724bc9Sbluhm                    with multiple CMakeLists.txt files
11510d60d187Sbluhm             #72  CMake: Resolve mistaken executable permissions
11520d60d187Sbluhm             #76  Address compile warning with -DNDEBUG (not recommended!)
11530d60d187Sbluhm             #77  Address compile warning about macro redefinition
11540d60d187Sbluhm
11550d60d187Sbluhm        Special thanks to:
11560d60d187Sbluhm            Alexander Bluhm
11570d60d187Sbluhm            Ben Boeckel
11580d60d187Sbluhm            Cătălin Răceanu
11590d60d187Sbluhm            Kerin Millar
11600d60d187Sbluhm            László Böszörményi
11610d60d187Sbluhm            S. P. Zeidler
11620d60d187Sbluhm            Segev Finer
11630d60d187Sbluhm            Václav Slavík
11640d60d187Sbluhm            Victor Stinner
11650d60d187Sbluhm            Viktor Szakats
11660d60d187Sbluhm                 and
11670d60d187Sbluhm            Radically Open Security
11680d60d187Sbluhm
11692feb5d2aSbluhmRelease 2.2.1 Sat June 17 2017
11702feb5d2aSbluhm        Security fixes:
11712feb5d2aSbluhm                  CVE-2017-9233 -- External entity infinite loop DoS
11722feb5d2aSbluhm                    Details: https://libexpat.github.io/doc/cve-2017-9233/
11732feb5d2aSbluhm                    Commit c4bf96bb51dd2a1b0e185374362ee136fe2c9d7f
11742feb5d2aSbluhm   [MOX-002]      CVE-2016-9063 -- Detect integer overflow; commit
11752feb5d2aSbluhm                    d4f735b88d9932bd5039df2335eefdd0723dbe20
11762feb5d2aSbluhm                    (Fixed version of existing downstream patches!)
11772feb5d2aSbluhm   (SF.net) #539  Fix regression from fix to CVE-2016-0718 cutting off
11782feb5d2aSbluhm                    longer tag names; commits
11792feb5d2aSbluhm                    * 896b6c1fd3b842f377d1b62135dccf0a579cf65d
11802feb5d2aSbluhm                    * af507cef2c93cb8d40062a0abe43a4f4e9158fb2
11812feb5d2aSbluhm             #16    * 0dbbf43fdb20f593ddf4fa1ff67288000dd4a7fd
11822feb5d2aSbluhm             #25  More integer overflow detection (function poolGrow); commits
11832feb5d2aSbluhm                    * 810b74e4703dcfdd8f404e3cb177d44684775143
11842feb5d2aSbluhm                    * 44178553f3539ce69d34abee77a05e879a7982ac
11852feb5d2aSbluhm   [MOX-002]      Detect overflow from len=INT_MAX call to XML_Parse; commits
11862feb5d2aSbluhm                    * 4be2cb5afcc018d996f34bbbce6374b7befad47f
11872feb5d2aSbluhm                    * 7e5b71b748491b6e459e5c9a1d090820f94544d8
11882feb5d2aSbluhm   [MOX-005] #30  Use high quality entropy for hash initialization:
11892feb5d2aSbluhm                    * arc4random_buf on BSD, systems with libbsd
11902feb5d2aSbluhm                      (when configured with --with-libbsd), CloudABI
11912feb5d2aSbluhm                    * RtlGenRandom on Windows XP / Server 2003 and later
11922feb5d2aSbluhm                    * getrandom on Linux 3.17+
11932feb5d2aSbluhm                    In a way, that's still part of CVE-2016-5300.
11942feb5d2aSbluhm                    https://github.com/libexpat/libexpat/pull/30/commits
11952feb5d2aSbluhm   [MOX-005]      For the low quality entropy extraction fallback code,
11962feb5d2aSbluhm                    the parser instance address can no longer leak, commit
11972feb5d2aSbluhm                    04ad658bd3079dd15cb60fc67087900f0ff4b083
11982feb5d2aSbluhm   [MOX-003]      Prevent use of uninitialised variable; commit
11992feb5d2aSbluhm   [MOX-004]        a4dc944f37b664a3ca7199c624a98ee37babdb4b
12002feb5d2aSbluhm                  Add missing parameter validation to public API functions
12012feb5d2aSbluhm                    and dedicated error code XML_ERROR_INVALID_ARGUMENT:
12022feb5d2aSbluhm   [MOX-006]        * NULL checks; commits
12032feb5d2aSbluhm                      * d37f74b2b7149a3a95a680c4c4cd2a451a51d60a (merge/many)
12042feb5d2aSbluhm                      * 9ed727064b675b7180c98cb3d4f75efba6966681
12052feb5d2aSbluhm                      * 6a747c837c50114dfa413994e07c0ba477be4534
12062feb5d2aSbluhm                    * Negative length (XML_Parse); commit
12072feb5d2aSbluhm   [MOX-002]          70db8d2538a10f4c022655d6895e4c3e78692e7f
12082feb5d2aSbluhm   [MOX-001] #35  Change hash algorithm to William Ahern's version of SipHash
12092feb5d2aSbluhm                    to go further with fixing CVE-2012-0876.
12102feb5d2aSbluhm                    https://github.com/libexpat/libexpat/pull/39/commits
12112feb5d2aSbluhm
12122feb5d2aSbluhm        Bug fixes:
12132feb5d2aSbluhm             #32  Fix sharing of hash salt across parsers;
12142feb5d2aSbluhm                    relevant where XML_ExternalEntityParserCreate is called
12152feb5d2aSbluhm                    prior to XML_Parse, in particular (e.g. FBReader)
12162feb5d2aSbluhm             #28  xmlwf: Auto-disable use of memory-mapping (and parsing
12172feb5d2aSbluhm                    as a single chunk) for files larger than ~1 GB (2^30 bytes)
12182feb5d2aSbluhm                    rather than failing with error "out of memory"
12192feb5d2aSbluhm              #3  Fix double free after malloc failure in DTD code; commit
12202feb5d2aSbluhm                    7ae9c3d3af433cd4defe95234eae7dc8ed15637f
12212feb5d2aSbluhm             #17  Fix memory leak on parser error for unbound XML attribute
12222feb5d2aSbluhm                    prefix with new namespaces defined in the same tag;
12232feb5d2aSbluhm                    found by Google's OSS-Fuzz; commits
12242feb5d2aSbluhm                    * 16f87daae5a16132e479e4f71862128c7a915c73
12252feb5d2aSbluhm                    * b47dbc9745932c160893d433220e462bd605f8cd
12262feb5d2aSbluhm                  xmlwf on Windows: Add missing calls to CloseHandle
12272feb5d2aSbluhm
12282feb5d2aSbluhm        New features:
12292feb5d2aSbluhm             #30  Introduced environment switch EXPAT_ENTROPY_DEBUG=1
12302feb5d2aSbluhm                    for runtime debugging of entropy extraction
12312feb5d2aSbluhm
12322feb5d2aSbluhm        Other changes:
12332feb5d2aSbluhm                  Increase code coverage
12342feb5d2aSbluhm             #33  Reject use of XML_UNICODE_WCHAR_T with sizeof(wchar_t) != 2;
12352feb5d2aSbluhm                    XML_UNICODE_WCHAR_T was never meant to be used outside
12362feb5d2aSbluhm                    of Windows; 4-byte wchar_t is common on Linux
12372feb5d2aSbluhm   (SF.net) #538  Start using -fno-strict-aliasing
12382feb5d2aSbluhm   (SF.net) #540  Support compilation against cloudlibc of CloudABI
12392feb5d2aSbluhm                  Allow MinGW cross-compilation
12402feb5d2aSbluhm   (SF.net) #534  CMake: Introduce option "BUILD_doc" (enabled by default)
12412feb5d2aSbluhm                    to bypass compilation of the xmlwf.1 man page
12422feb5d2aSbluhm   (SF.net)  pr2  CMake: Introduce option "INSTALL" (enabled by default)
12432feb5d2aSbluhm                    to bypass installation of expat files
12442feb5d2aSbluhm                  CMake: Fix ninja support
12452feb5d2aSbluhm                  Autotools: Add parameters --enable-xml-context [COUNT]
12462feb5d2aSbluhm                    and --disable-xml-context; default of context of 1024
12472feb5d2aSbluhm                    bytes enabled unchanged
12482feb5d2aSbluhm             #14  Drop AmigaOS 4.x code and includes
12492feb5d2aSbluhm             #14  Drop ancient build systems:
12502feb5d2aSbluhm                    * Borland C++ Builder
12512feb5d2aSbluhm                    * OpenVMS
12522feb5d2aSbluhm                    * Open Watcom
12532feb5d2aSbluhm                    * Visual Studio 6.0
12542feb5d2aSbluhm                    * Pre-X Mac OS (MPW Makefile)
12552feb5d2aSbluhm                    If you happen to rely on some of these, please get in
12562feb5d2aSbluhm                    touch for joining with maintenance.
12572feb5d2aSbluhm             #10  Move from WIN32 to _WIN32
12582feb5d2aSbluhm             #13  Fix "make run-xmltest" order instability
12592feb5d2aSbluhm                  Address compile warnings
12602feb5d2aSbluhm                  Bump version info from 7:2:6 to 7:3:6
12612feb5d2aSbluhm                  Add AUTHORS file
12622feb5d2aSbluhm
12632feb5d2aSbluhm        Infrastructure:
12642feb5d2aSbluhm              #1  Migrate from SourceForge to GitHub (except downloads):
12652feb5d2aSbluhm                    https://github.com/libexpat/
12662feb5d2aSbluhm              #1  Re-create http://libexpat.org/ project website
12672feb5d2aSbluhm                  Start utilizing Travis CI
12682feb5d2aSbluhm
12692feb5d2aSbluhm        Special thanks to:
12702feb5d2aSbluhm            Andy Wang
12712feb5d2aSbluhm            Don Lewis
12722feb5d2aSbluhm            Ed Schouten
12732feb5d2aSbluhm            Karl Waclawek
12742feb5d2aSbluhm            Pascal Cuoq
12752feb5d2aSbluhm            Rhodri James
12762feb5d2aSbluhm            Sergei Nikulov
12772feb5d2aSbluhm            Tobias Taschner
12782feb5d2aSbluhm            Viktor Szakats
12792feb5d2aSbluhm                 and
12802feb5d2aSbluhm            Core Infrastructure Initiative
12812feb5d2aSbluhm            Mozilla Foundation (MOSS Track 3: Secure Open Source)
12822feb5d2aSbluhm            Radically Open Security
12832feb5d2aSbluhm
12842feb5d2aSbluhmRelease 2.2.0 Tue June 21 2016
12852feb5d2aSbluhm        Security fixes:
12862feb5d2aSbluhm            #537  CVE-2016-0718 -- Fix crash on malformed input
12872feb5d2aSbluhm                  CVE-2016-4472 -- Improve insufficient fix to CVE-2015-1283 /
12882feb5d2aSbluhm                                   CVE-2015-2716 introduced with Expat 2.1.1
12892feb5d2aSbluhm            #499  CVE-2016-5300 -- Use more entropy for hash initialization
12902feb5d2aSbluhm                                   than the original fix to CVE-2012-0876
12912feb5d2aSbluhm            #519  CVE-2012-6702 -- Resolve troublesome internal call to srand
12922feb5d2aSbluhm                                   that was introduced with Expat 2.1.0
12932feb5d2aSbluhm                                   when addressing CVE-2012-0876 (issue #496)
12942feb5d2aSbluhm
12952feb5d2aSbluhm        Bug fixes:
12962feb5d2aSbluhm                  Fix uninitialized reads of size 1
12972feb5d2aSbluhm                    (e.g. in little2_updatePosition)
12982feb5d2aSbluhm                  Fix detection of UTF-8 character boundaries
12992feb5d2aSbluhm
13002feb5d2aSbluhm        Other changes:
13012feb5d2aSbluhm            #532  Fix compilation for Visual Studio 2010 (keyword "C99")
13022feb5d2aSbluhm                  Autotools: Resolve use of "$<" to better support bmake
13032feb5d2aSbluhm                  Autotools: Add QA script "qa.sh" (and make target "qa")
13042feb5d2aSbluhm                  Autotools: Respect CXXFLAGS if given
13052feb5d2aSbluhm                  Autotools: Fix "make run-xmltest"
13062feb5d2aSbluhm                  Autotools: Have "make run-xmltest" check for expected output
13072feb5d2aSbluhm             p90  CMake: Fix static build (BUILD_shared=OFF) on Windows
13082feb5d2aSbluhm            #536  CMake: Add soversion, support -DNO_SONAME=yes to bypass
13092feb5d2aSbluhm            #323  CMake: Add suffix "d" to differentiate debug from release
13102feb5d2aSbluhm                  CMake: Define WIN32 with CMake on Windows
13112feb5d2aSbluhm                  Annotate memory allocators for GCC
13122feb5d2aSbluhm                  Address all currently known compile warnings
13132feb5d2aSbluhm                  Make sure that API symbols remain visible despite
13142feb5d2aSbluhm                    -fvisibility=hidden
13152feb5d2aSbluhm                  Remove executable flag from source files
13162feb5d2aSbluhm                  Resolve COMPILED_FROM_DSP in favor of WIN32
13172feb5d2aSbluhm
13182feb5d2aSbluhm        Special thanks to:
13192feb5d2aSbluhm            Björn Lindahl
13202feb5d2aSbluhm            Christian Heimes
13212feb5d2aSbluhm            Cristian Rodríguez
13222feb5d2aSbluhm            Daniel Krügler
13232feb5d2aSbluhm            Gustavo Grieco
13242feb5d2aSbluhm            Karl Waclawek
13252feb5d2aSbluhm            László Böszörményi
13262feb5d2aSbluhm            Marco Grassi
13272feb5d2aSbluhm            Pascal Cuoq
13282feb5d2aSbluhm            Sergei Nikulov
13292feb5d2aSbluhm            Thomas Beutlich
13302feb5d2aSbluhm            Warren Young
13312feb5d2aSbluhm            Yann Droneaud
13322feb5d2aSbluhm
1333695f0d7bSrpointelRelease 2.1.1 Sat March 12 2016
1334695f0d7bSrpointel        Security fixes:
1335695f0d7bSrpointel            #582: CVE-2015-1283 - Multiple integer overflows in XML_GetBuffer
1336695f0d7bSrpointel
1337695f0d7bSrpointel        Bug fixes:
1338695f0d7bSrpointel            #502: Fix potential null pointer dereference
1339695f0d7bSrpointel            #520: Symbol XML_SetHashSalt was not exported
1340695f0d7bSrpointel            Output of "xmlwf -h" was incomplete
1341695f0d7bSrpointel
13422feb5d2aSbluhm        Other changes:
1343695f0d7bSrpointel            #503: Document behavior of calling XML_SetHashSalt with salt 0
1344695f0d7bSrpointel            Minor improvements to man page xmlwf(1)
1345695f0d7bSrpointel            Improvements to the experimental CMake build system
1346695f0d7bSrpointel            libtool now invoked with --verbose
1347695f0d7bSrpointel
13486400bc34SrpointelRelease 2.1.0 Sat March 24 2012
13492feb5d2aSbluhm        - Security fixes:
13502feb5d2aSbluhm          #2958794: CVE-2012-1148 - Memory leak in poolGrow.
13512feb5d2aSbluhm          #2895533: CVE-2012-1147 - Resource leak in readfilemap.c.
13522feb5d2aSbluhm          #3496608: CVE-2012-0876 - Hash DOS attack.
13532feb5d2aSbluhm          #2894085: CVE-2009-3560 - Buffer over-read and crash in big2_toUtf8().
13542feb5d2aSbluhm          #1990430: CVE-2009-3720 - Parser crash with special UTF-8 sequences.
13556400bc34Srpointel        - Bug Fixes:
13566400bc34Srpointel          #1742315: Harmful XML_ParserCreateNS suggestion.
13576400bc34Srpointel          #1785430: Expat build fails on linux-amd64 with gcc version>=4.1 -O3.
13586400bc34Srpointel          #1983953, 2517952, 2517962, 2649838:
13596400bc34Srpointel                Build modifications using autoreconf instead of buildconf.sh.
13606400bc34Srpointel          #2815947, #2884086: OBJEXT and EXEEXT support while building.
13616400bc34Srpointel          #2517938: xmlwf should return non-zero exit status if not well-formed.
13626400bc34Srpointel          #2517946: Wrong statement about XMLDecl in xmlwf.1 and xmlwf.sgml.
13636400bc34Srpointel          #2855609: Dangling positionPtr after error.
13646400bc34Srpointel          #2990652: CMake support.
13656400bc34Srpointel          #3010819: UNEXPECTED_STATE with a trailing "%" in entity value.
13662e724bc9Sbluhm          #3206497: Uninitialized memory returned from XML_Parse.
13676400bc34Srpointel          #3287849: make check fails on mingw-w64.
13686400bc34Srpointel        - Patches:
13696400bc34Srpointel          #1749198: pkg-config support.
13706400bc34Srpointel          #3010222: Fix for bug #3010819.
13716400bc34Srpointel          #3312568: CMake support.
13726400bc34Srpointel          #3446384: Report byte offsets for attr names and values.
13736400bc34Srpointel        - New Features / API changes:
1374695f0d7bSrpointel          Added new API member XML_SetHashSalt() that allows setting an initial
13756400bc34Srpointel                value (salt) for hash calculations. This is part of the fix for
13766400bc34Srpointel                bug #3496608 to randomize hash parameters.
13776400bc34Srpointel          When compiled with XML_ATTR_INFO defined, adds new API member
13786400bc34Srpointel                XML_GetAttributeInfo() that allows retrieving the byte
13796400bc34Srpointel                offsets for attribute names and values (patch #3446384).
13806400bc34Srpointel          Added CMake build system.
13816400bc34Srpointel                See bug #2990652 and patch #3312568.
13826400bc34Srpointel          Added run-benchmark target to Makefile.in - relies on testdata module
13836400bc34Srpointel                present in the same relative location as in the repository.
13846400bc34Srpointel
1385b26ab0f8SmatthieuRelease 2.0.1 Tue June 5 2007
13860ad1cb5aSeric        - Fixed bugs #1515266, #1515600: The character data handler's calling
1387b26ab0f8Smatthieu          of XML_StopParser() was not handled properly; if the parser was
1388b26ab0f8Smatthieu          stopped and the handler set to NULL, the parser would segfault.
1389b26ab0f8Smatthieu        - Fixed bug #1690883: Expat failed on EBCDIC systems as it assumed
1390b26ab0f8Smatthieu          some character constants to be ASCII encoded.
1391b26ab0f8Smatthieu        - Minor cleanups of the test harness.
1392b26ab0f8Smatthieu        - Fixed xmlwf bug #1513566: "out of memory" error on file size zero.
1393b26ab0f8Smatthieu        - Fixed outline.c bug #1543233: missing a final XML_ParserFree() call.
1394b26ab0f8Smatthieu        - Fixes and improvements for Windows platform:
13950ad1cb5aSeric          bugs #1409451, #1476160, #1548182, #1602769, #1717322.
1396b26ab0f8Smatthieu        - Build fixes for various platforms:
1397b26ab0f8Smatthieu          HP-UX, Tru64, Solaris 9: patch #1437840, bug #1196180.
1398b26ab0f8Smatthieu          All Unix: #1554618 (refreshed config.sub/config.guess).
1399b26ab0f8Smatthieu                    #1490371, #1613457: support both, DESTDIR and INSTALL_ROOT,
1400b26ab0f8Smatthieu                    without relying on GNU-Make specific features.
1401b26ab0f8Smatthieu          #1647805: Patched configure.in to work better with Intel compiler.
1402b26ab0f8Smatthieu        - Fixes to Makefile.in to have make check work correctly:
1403b26ab0f8Smatthieu          bugs #1408143, #1535603, #1536684.
1404b26ab0f8Smatthieu        - Added Open Watcom support: patch #1523242.
1405b26ab0f8Smatthieu
14067d36914fSalekRelease 2.0.0 Wed Jan 11 2006
14077d36914fSalek        - We no longer use the "check" library for C unit testing; we
14087d36914fSalek          always use the (partial) internal implementation of the API.
14097d36914fSalek        - Report XML_NS setting via XML_GetFeatureList().
14107d36914fSalek        - Fixed headers for use from C++.
14117d36914fSalek        - XML_GetCurrentLineNumber() and  XML_GetCurrentColumnNumber()
14127d36914fSalek          now return unsigned integers.
14137d36914fSalek        - Added XML_LARGE_SIZE switch to enable 64-bit integers for
14147d36914fSalek          byte indexes and line/column numbers.
14157d36914fSalek        - Updated to use libtool 1.5.22 (the most recent).
14167d36914fSalek        - Added support for AmigaOS.
14170ad1cb5aSeric        - Some mostly minor bug fixes. SF issues include: #1006708,
14180ad1cb5aSeric          #1021776, #1023646, #1114960, #1156398, #1221160, #1271642.
14197d36914fSalek
14207d36914fSalekRelease 1.95.8 Fri Jul 23 2004
14217d36914fSalek        - Major new feature: suspend/resume.  Handlers can now request
14227d36914fSalek          that a parse be suspended for later resumption or aborted
14237d36914fSalek          altogether.  See "Temporarily Stopping Parsing" in the
14247d36914fSalek          documentation for more details.
14257d36914fSalek        - Some mostly minor bug fixes, but compilation should no
14267d36914fSalek          longer generate warnings on most platforms.  SF issues
14270ad1cb5aSeric          include: #827319, #840173, #846309, #888329, #896188, #923913,
14280ad1cb5aSeric          #928113, #961698, #985192.
14297d36914fSalek
14307d36914fSalekRelease 1.95.7 Mon Oct 20 2003
14317d36914fSalek        - Fixed enum XML_Status issue (reported on SourceForge many
14327d36914fSalek          times), so compilers that are properly picky will be happy.
14337d36914fSalek        - Introduced an XMLCALL macro to control the calling
14347d36914fSalek          convention used by the Expat API; this macro should be used
14357d36914fSalek          to annotate prototypes and definitions of callback
14367d36914fSalek          implementations in code compiled with a calling convention
14377d36914fSalek          other than the default convention for the host platform.
14387d36914fSalek        - Improved ability to build without the configure-generated
14397d36914fSalek          expat_config.h header.  This is useful for applications
14407d36914fSalek          which embed Expat rather than linking in the library.
14410ad1cb5aSeric        - Fixed a variety of bugs: see SF issues #458907, #609603,
14420ad1cb5aSeric          #676844, #679754, #692878, #692964, #695401, #699323, #699487,
14430ad1cb5aSeric          #820946.
14447d36914fSalek        - Improved hash table lookups.
14457d36914fSalek        - Added more regression tests and improved documentation.
14467d36914fSalek
14471a3ddf8cSespieRelease 1.95.6 Tue Jan 28 2003
14481a3ddf8cSespie        - Added XML_FreeContentModel().
14491a3ddf8cSespie        - Added XML_MemMalloc(), XML_MemRealloc(), XML_MemFree().
14500ad1cb5aSeric        - Fixed a variety of bugs: see SF issues #615606, #616863,
14510ad1cb5aSeric          #618199, #653180, #673791.
14521a3ddf8cSespie        - Enhanced the regression test suite.
14530ad1cb5aSeric        - Man page improvements: includes SF issue #632146.
14541a3ddf8cSespie
14551a3ddf8cSespieRelease 1.95.5 Fri Sep 6 2002
14561a3ddf8cSespie        - Added XML_UseForeignDTD() for improved SAX2 support.
14571a3ddf8cSespie        - Added XML_GetFeatureList().
14581a3ddf8cSespie        - Defined XML_Bool type and the values XML_TRUE and XML_FALSE.
14591a3ddf8cSespie        - Use an incomplete struct instead of a void* for the parser
14601a3ddf8cSespie          (may not retain).
14611a3ddf8cSespie        - Fixed UTF-8 decoding bug that caused legal UTF-8 to be rejected.
14621a3ddf8cSespie        - Finally fixed bug where default handler would report DTD
14631a3ddf8cSespie          events that were already handled by another handler.
14641a3ddf8cSespie          Initial patch contributed by Darryl Miles.
14651a3ddf8cSespie        - Removed unnecessary DllMain() function that caused static
14661a3ddf8cSespie          linking into a DLL to be difficult.
14671a3ddf8cSespie        - Added VC++ projects for building static libraries.
14681a3ddf8cSespie        - Reduced line-length for all source code and headers to be
14691a3ddf8cSespie          no longer than 80 characters, to help with AS/400 support.
14701a3ddf8cSespie        - Reduced memory copying during parsing (SF patch #600964).
14710ad1cb5aSeric        - Fixed a variety of bugs: see SF issues #580793, #434664,
14720ad1cb5aSeric          #483514, #580503, #581069, #584041, #584183, #584832, #585537,
14730ad1cb5aSeric          #596555, #596678, #598352, #598944, #599715, #600479, #600971.
14741a3ddf8cSespie
14751a3ddf8cSespieRelease 1.95.4 Fri Jul 12 2002
14761a3ddf8cSespie        - Added support for VMS, contributed by Craig Berry.  See
14771a3ddf8cSespie          vms/README.vms for more information.
14781a3ddf8cSespie        - Added Mac OS (classic) support, with a makefile for MPW,
14791a3ddf8cSespie          contributed by Thomas Wegner and Daryle Walker.
14801a3ddf8cSespie        - Added Borland C++ Builder 5 / BCC 5.5 support, contributed
14811a3ddf8cSespie          by Patrick McConnell (SF patch #538032).
14820ad1cb5aSeric        - Fixed a variety of bugs: see SF issues #441449, #563184,
14830ad1cb5aSeric          #564342, #566334, #566901, #569461, #570263, #575168, #579196.
14841a3ddf8cSespie        - Made skippedEntityHandler conform to SAX2 (see source comment)
14851a3ddf8cSespie        - Re-implemented WFC: Entity Declared from XML 1.0 spec and
14861a3ddf8cSespie          added a new error "entity declared in parameter entity":
14870ad1cb5aSeric          see SF bug report #569461 and SF patch #578161
14881a3ddf8cSespie        - Re-implemented section 5.1 from XML 1.0 spec:
14890ad1cb5aSeric          see SF bug report #570263 and SF patch #578161
14901a3ddf8cSespie
14911a3ddf8cSespieRelease 1.95.3 Mon Jun 3 2002
14921a3ddf8cSespie        - Added a project to the MSVC workspace to create a wchar_t
14931a3ddf8cSespie          version of the library; the DLLs are named libexpatw.dll.
14941a3ddf8cSespie        - Changed the name of the Windows DLLs from expat.dll to
14951a3ddf8cSespie          libexpat.dll; this fixes SF bug #432456.
14961a3ddf8cSespie        - Added the XML_ParserReset() API function.
14971a3ddf8cSespie        - Fixed XML_SetReturnNSTriplet() to work for element names.
14981a3ddf8cSespie        - Made the XML_UNICODE builds usable (thanks, Karl!).
14991a3ddf8cSespie        - Allow xmlwf to read from standard input.
15001a3ddf8cSespie        - Install a man page for xmlwf on Unix systems.
15010ad1cb5aSeric        - Fixed many bugs; see SF bug reports #231864, #461380, #464837,
15020ad1cb5aSeric          #466885, #469226, #477667, #484419, #487840, #494749, #496505,
15030ad1cb5aSeric          #547350.  Other bugs which we can't test as easily may also
15041a3ddf8cSespie          have been fixed, especially in the area of build support.
15051a3ddf8cSespie
15061a3ddf8cSespieRelease 1.95.2 Fri Jul 27 2001
15071a3ddf8cSespie        - More changes to make MSVC happy with the build; add a single
15081a3ddf8cSespie          workspace to support both the library and xmlwf application.
15091a3ddf8cSespie        - Added a Windows installer for Windows users; includes
15101a3ddf8cSespie          xmlwf.exe.
15111a3ddf8cSespie        - Added compile-time constants that can be used to determine the
15121a3ddf8cSespie          Expat version
15131a3ddf8cSespie        - Removed a lot of GNU-specific dependencies to aide portability
15141a3ddf8cSespie          among the various Unix flavors.
15151a3ddf8cSespie        - Fix the UTF-8 BOM bug.
15161a3ddf8cSespie        - Cleaned up warning messages for several compilers.
15171a3ddf8cSespie        - Added the -Wall, -Wstrict-prototypes options for GCC.
15181a3ddf8cSespie
15191a3ddf8cSespieRelease 1.95.1 Sun Oct 22 15:11:36 EDT 2000
15201a3ddf8cSespie        - Changes to get expat to build under Microsoft compiler
15211a3ddf8cSespie        - Removed all aborts and instead return an UNEXPECTED_STATE error.
15221a3ddf8cSespie        - Fixed a bug where a stray '%' in an entity value would cause an
15231a3ddf8cSespie          abort.
15241a3ddf8cSespie        - Defined XML_SetEndNamespaceDeclHandler. Thanks to Darryl Miles for
15251a3ddf8cSespie          finding this oversight.
15261a3ddf8cSespie        - Changed default patterns in lib/Makefile.in to fit non-GNU makes
15271a3ddf8cSespie          Thanks to robin@unrated.net for reporting and providing an
15281a3ddf8cSespie          account to test on.
15291a3ddf8cSespie        - The reference had the wrong label for XML_SetStartNamespaceDecl.
15301a3ddf8cSespie          Reported by an anonymous user.
15311a3ddf8cSespie
15321a3ddf8cSespieRelease 1.95.0 Fri Sep 29 2000
15331a3ddf8cSespie        - XML_ParserCreate_MM
15341a3ddf8cSespie                Allows you to set a memory management suite to replace the
15351a3ddf8cSespie                standard malloc,realloc, and free.
15361a3ddf8cSespie        - XML_SetReturnNSTriplet
15371a3ddf8cSespie                If you turn this feature on when namespace processing is in
15381a3ddf8cSespie                effect, then qualified, prefixed element and attribute names
15391a3ddf8cSespie                are returned as "uri|name|prefix" where '|' is whatever
15401a3ddf8cSespie                separator character is used in namespace processing.
15411a3ddf8cSespie        - Merged in features from perl-expat
15421a3ddf8cSespie                o XML_SetElementDeclHandler
15431a3ddf8cSespie                o XML_SetAttlistDeclHandler
15441a3ddf8cSespie                o XML_SetXmlDeclHandler
15451a3ddf8cSespie                o XML_SetEntityDeclHandler
15461a3ddf8cSespie                o StartDoctypeDeclHandler takes 3 additional parameters:
15471a3ddf8cSespie                        sysid, pubid, has_internal_subset
15481a3ddf8cSespie                o Many paired handler setters (like XML_SetElementHandler)
15491a3ddf8cSespie                  now have corresponding individual handler setters
15501a3ddf8cSespie                o XML_GetInputContext for getting the input context of
15511a3ddf8cSespie                  the current parse position.
15521a3ddf8cSespie        - Added reference material
15531a3ddf8cSespie        - Packaged into a distribution that builds a sharable library
1554