jpayne@68
|
1 __ __ _
|
jpayne@68
|
2 ___\ \/ /_ __ __ _| |_
|
jpayne@68
|
3 / _ \\ /| '_ \ / _` | __|
|
jpayne@68
|
4 | __// \| |_) | (_| | |_
|
jpayne@68
|
5 \___/_/\_\ .__/ \__,_|\__|
|
jpayne@68
|
6 |_| XML parser
|
jpayne@68
|
7
|
jpayne@68
|
8 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
jpayne@68
|
9 !! <blink>Expat is UNDERSTAFFED and WITHOUT FUNDING.</blink> !!
|
jpayne@68
|
10 !! ~~~~~~~~~~~~ !!
|
jpayne@68
|
11 !! The following topics need *additional skilled C developers* to progress !!
|
jpayne@68
|
12 !! in a timely manner or at all (loosely ordered by descending priority): !!
|
jpayne@68
|
13 !! !!
|
jpayne@68
|
14 !! - <blink>fixing a complex non-public security issue</blink>, !!
|
jpayne@68
|
15 !! - teaming up on researching and fixing future security reports and !!
|
jpayne@68
|
16 !! ClusterFuzz findings with few-days-max response times in communication !!
|
jpayne@68
|
17 !! in order to (1) have a sound fix ready before the end of a 90 days !!
|
jpayne@68
|
18 !! grace period and (2) in a sustainable manner, !!
|
jpayne@68
|
19 !! - implementing and auto-testing XML 1.0r5 support !!
|
jpayne@68
|
20 !! (needs discussion before pull requests), !!
|
jpayne@68
|
21 !! - smart ideas on fixing the Autotools CMake files generation issue !!
|
jpayne@68
|
22 !! without breaking CI (needs discussion before pull requests), !!
|
jpayne@68
|
23 !! - the Windows binaries topic (needs requirements engineering first), !!
|
jpayne@68
|
24 !! - pushing migration from `int` to `size_t` further !!
|
jpayne@68
|
25 !! including edge-cases test coverage (needs discussion before anything). !!
|
jpayne@68
|
26 !! !!
|
jpayne@68
|
27 !! For details, please reach out via e-mail to sebastian@pipping.org so we !!
|
jpayne@68
|
28 !! can schedule a voice call on the topic, in English or German. !!
|
jpayne@68
|
29 !! !!
|
jpayne@68
|
30 !! THANK YOU! Sebastian Pipping -- Berlin, 2024-03-09 !!
|
jpayne@68
|
31 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
jpayne@68
|
32
|
jpayne@68
|
33 Release 2.6.4 Wed November 6 2024
|
jpayne@68
|
34 Security fixes:
|
jpayne@68
|
35 #915 CVE-2024-50602 -- Fix crash within function XML_ResumeParser
|
jpayne@68
|
36 from a NULL pointer dereference by disallowing function
|
jpayne@68
|
37 XML_StopParser to (stop or) suspend an unstarted parser.
|
jpayne@68
|
38 A new error code XML_ERROR_NOT_STARTED was introduced to
|
jpayne@68
|
39 properly communicate this situation. // CWE-476 CWE-754
|
jpayne@68
|
40
|
jpayne@68
|
41 Other changes:
|
jpayne@68
|
42 #903 CMake: Add alias target "expat::expat"
|
jpayne@68
|
43 #905 docs: Document use via CMake >=3.18 with FetchContent
|
jpayne@68
|
44 and SOURCE_SUBDIR and its consequences
|
jpayne@68
|
45 #902 tests: Reduce use of global parser instance
|
jpayne@68
|
46 #904 tests: Resolve duplicate handler
|
jpayne@68
|
47 #317 #918 tests: Improve tests on doctype closing (ex CVE-2019-15903)
|
jpayne@68
|
48 #914 Fix signedness of format strings
|
jpayne@68
|
49 #919 #920 Version info bumped from 10:3:9 (libexpat*.so.1.9.3)
|
jpayne@68
|
50 to 11:0:10 (libexpat*.so.1.10.0); see https://verbump.de/
|
jpayne@68
|
51 for what these numbers do
|
jpayne@68
|
52
|
jpayne@68
|
53 Infrastructure:
|
jpayne@68
|
54 #907 CI: Upgrade Clang from 18 to 19
|
jpayne@68
|
55 #913 CI: Drop macos-12 and add macos-15
|
jpayne@68
|
56 #910 CI: Adapt to breaking changes in GitHub Actions
|
jpayne@68
|
57 #898 Add missing entries to .gitignore
|
jpayne@68
|
58
|
jpayne@68
|
59 Special thanks to:
|
jpayne@68
|
60 Hanno Böck
|
jpayne@68
|
61 José Eduardo Gutiérrez Conejo
|
jpayne@68
|
62 José Ricardo Cardona Quesada
|
jpayne@68
|
63
|
jpayne@68
|
64 Release 2.6.3 Wed September 4 2024
|
jpayne@68
|
65 Security fixes:
|
jpayne@68
|
66 #887 #890 CVE-2024-45490 -- Calling function XML_ParseBuffer with
|
jpayne@68
|
67 len < 0 without noticing and then calling XML_GetBuffer
|
jpayne@68
|
68 will have XML_ParseBuffer fail to recognize the problem
|
jpayne@68
|
69 and XML_GetBuffer corrupt memory.
|
jpayne@68
|
70 With the fix, XML_ParseBuffer now complains with error
|
jpayne@68
|
71 XML_ERROR_INVALID_ARGUMENT just like sibling XML_Parse
|
jpayne@68
|
72 has been doing since Expat 2.2.1, and now documented.
|
jpayne@68
|
73 Impact is denial of service to potentially artitrary code
|
jpayne@68
|
74 execution.
|
jpayne@68
|
75 #888 #891 CVE-2024-45491 -- Internal function dtdCopy can have an
|
jpayne@68
|
76 integer overflow for nDefaultAtts on 32-bit platforms
|
jpayne@68
|
77 (where UINT_MAX equals SIZE_MAX).
|
jpayne@68
|
78 Impact is denial of service to potentially artitrary code
|
jpayne@68
|
79 execution.
|
jpayne@68
|
80 #889 #892 CVE-2024-45492 -- Internal function nextScaffoldPart can
|
jpayne@68
|
81 have an integer overflow for m_groupSize on 32-bit
|
jpayne@68
|
82 platforms (where UINT_MAX equals SIZE_MAX).
|
jpayne@68
|
83 Impact is denial of service to potentially artitrary code
|
jpayne@68
|
84 execution.
|
jpayne@68
|
85
|
jpayne@68
|
86 Other changes:
|
jpayne@68
|
87 #851 #879 Autotools: Sync CMake templates with CMake 3.28
|
jpayne@68
|
88 #853 Autotools: Always provide path to find(1) for portability
|
jpayne@68
|
89 #861 Autotools: Ensure that the m4 directory always exists.
|
jpayne@68
|
90 #870 Autotools: Simplify handling of SIZEOF_VOID_P
|
jpayne@68
|
91 #869 Autotools: Support non-GNU sed
|
jpayne@68
|
92 #856 Autotools|CMake: Fix main() to main(void)
|
jpayne@68
|
93 #865 Autotools|CMake: Fix compile tests for HAVE_SYSCALL_GETRANDOM
|
jpayne@68
|
94 #863 Autotools|CMake: Stop requiring dos2unix
|
jpayne@68
|
95 #854 #855 CMake: Fix check for symbols size_t and off_t
|
jpayne@68
|
96 #864 docs|tests: Convert README to Markdown and update
|
jpayne@68
|
97 #741 Windows: Drop support for Visual Studio <=15.0/2017
|
jpayne@68
|
98 #886 Drop needless XML_DTD guards around is_param access
|
jpayne@68
|
99 #885 Fix typo in a code comment
|
jpayne@68
|
100 #894 #896 Version info bumped from 10:2:9 (libexpat*.so.1.9.2)
|
jpayne@68
|
101 to 10:3:9 (libexpat*.so.1.9.3); see https://verbump.de/
|
jpayne@68
|
102 for what these numbers do
|
jpayne@68
|
103
|
jpayne@68
|
104 Infrastructure:
|
jpayne@68
|
105 #880 Readme: Promote the call for help
|
jpayne@68
|
106 #868 CI: Fix various issues
|
jpayne@68
|
107 #849 CI: Allow triggering GitHub Actions workflows manually
|
jpayne@68
|
108 #851 #872 ..
|
jpayne@68
|
109 #873 #879 CI: Adapt to breaking changes in GitHub Actions
|
jpayne@68
|
110
|
jpayne@68
|
111 Special thanks to:
|
jpayne@68
|
112 Alexander Bluhm
|
jpayne@68
|
113 Berkay Eren Ürün
|
jpayne@68
|
114 Dag-Erling Smørgrav
|
jpayne@68
|
115 Ferenc Géczi
|
jpayne@68
|
116 TaiYou
|
jpayne@68
|
117
|
jpayne@68
|
118 Release 2.6.2 Wed March 13 2024
|
jpayne@68
|
119 Security fixes:
|
jpayne@68
|
120 #839 #842 CVE-2024-28757 -- Prevent billion laughs attacks with
|
jpayne@68
|
121 isolated use of external parsers. Please see the commit
|
jpayne@68
|
122 message of commit 1d50b80cf31de87750103656f6eb693746854aa8
|
jpayne@68
|
123 for details.
|
jpayne@68
|
124
|
jpayne@68
|
125 Bug fixes:
|
jpayne@68
|
126 #839 #841 Reject direct parameter entity recursion
|
jpayne@68
|
127 and avoid the related undefined behavior
|
jpayne@68
|
128
|
jpayne@68
|
129 Other changes:
|
jpayne@68
|
130 #847 Autotools: Fix build for DOCBOOK_TO_MAN containing spaces
|
jpayne@68
|
131 #837 Add missing #821 and #824 to 2.6.1 change log
|
jpayne@68
|
132 #838 #843 Version info bumped from 10:1:9 (libexpat*.so.1.9.1)
|
jpayne@68
|
133 to 10:2:9 (libexpat*.so.1.9.2); see https://verbump.de/
|
jpayne@68
|
134 for what these numbers do
|
jpayne@68
|
135
|
jpayne@68
|
136 Special thanks to:
|
jpayne@68
|
137 Philippe Antoine
|
jpayne@68
|
138 Tomas Korbar
|
jpayne@68
|
139 and
|
jpayne@68
|
140 Clang UndefinedBehaviorSanitizer
|
jpayne@68
|
141 OSS-Fuzz / ClusterFuzz
|
jpayne@68
|
142
|
jpayne@68
|
143 Release 2.6.1 Thu February 29 2024
|
jpayne@68
|
144 Bug fixes:
|
jpayne@68
|
145 #817 Make tests independent of CPU speed, and thus more robust
|
jpayne@68
|
146 #828 #836 Expose billion laughs API with XML_DTD defined and
|
jpayne@68
|
147 XML_GE undefined, regression from 2.6.0
|
jpayne@68
|
148
|
jpayne@68
|
149 Other changes:
|
jpayne@68
|
150 #829 Hide test-only code behind new internal macro
|
jpayne@68
|
151 #833 Autotools: Reject expat_config.h.in defining SIZEOF_VOID_P
|
jpayne@68
|
152 #821 #824 Autotools: Fix "make clean" for case:
|
jpayne@68
|
153 ./configure --without-docbook && make clean all
|
jpayne@68
|
154 #819 Address compiler warnings
|
jpayne@68
|
155 #832 #834 Version info bumped from 10:0:9 (libexpat*.so.1.9.0)
|
jpayne@68
|
156 to 10:1:9 (libexpat*.so.1.9.1); see https://verbump.de/
|
jpayne@68
|
157 for what these numbers do
|
jpayne@68
|
158
|
jpayne@68
|
159 Infrastructure:
|
jpayne@68
|
160 #818 CI: Adapt to breaking changes in clang-format
|
jpayne@68
|
161
|
jpayne@68
|
162 Special thanks to:
|
jpayne@68
|
163 David Hall
|
jpayne@68
|
164 Snild Dolkow
|
jpayne@68
|
165
|
jpayne@68
|
166 Release 2.6.0 Tue February 6 2024
|
jpayne@68
|
167 Security fixes:
|
jpayne@68
|
168 #789 #814 CVE-2023-52425 -- Fix quadratic runtime issues with big tokens
|
jpayne@68
|
169 that can cause denial of service, in partial where
|
jpayne@68
|
170 dealing with compressed XML input. Applications
|
jpayne@68
|
171 that parsed a document in one go -- a single call to
|
jpayne@68
|
172 functions XML_Parse or XML_ParseBuffer -- were not affected.
|
jpayne@68
|
173 The smaller the chunks/buffers you use for parsing
|
jpayne@68
|
174 previously, the bigger the problem prior to the fix.
|
jpayne@68
|
175 Backporters should be careful to no omit parts of
|
jpayne@68
|
176 pull request #789 and to include earlier pull request #771,
|
jpayne@68
|
177 in order to not break the fix.
|
jpayne@68
|
178 #777 CVE-2023-52426 -- Fix billion laughs attacks for users
|
jpayne@68
|
179 compiling *without* XML_DTD defined (which is not common).
|
jpayne@68
|
180 Users with XML_DTD defined have been protected since
|
jpayne@68
|
181 Expat >=2.4.0 (and that was CVE-2013-0340 back then).
|
jpayne@68
|
182
|
jpayne@68
|
183 Bug fixes:
|
jpayne@68
|
184 #753 Fix parse-size-dependent "invalid token" error for
|
jpayne@68
|
185 external entities that start with a byte order mark
|
jpayne@68
|
186 #780 Fix NULL pointer dereference in setContext via
|
jpayne@68
|
187 XML_ExternalEntityParserCreate for compilation with
|
jpayne@68
|
188 XML_DTD undefined
|
jpayne@68
|
189 #812 #813 Protect against closing entities out of order
|
jpayne@68
|
190
|
jpayne@68
|
191 Other changes:
|
jpayne@68
|
192 #723 Improve support for arc4random/arc4random_buf
|
jpayne@68
|
193 #771 #788 Improve buffer growth in XML_GetBuffer and XML_Parse
|
jpayne@68
|
194 #761 #770 xmlwf: Support --help and --version
|
jpayne@68
|
195 #759 #770 xmlwf: Support custom buffer size for XML_GetBuffer and read
|
jpayne@68
|
196 #744 xmlwf: Improve language and URL clickability in help output
|
jpayne@68
|
197 #673 examples: Add new example "element_declarations.c"
|
jpayne@68
|
198 #764 Be stricter about macro XML_CONTEXT_BYTES at build time
|
jpayne@68
|
199 #765 Make inclusion to expat_config.h consistent
|
jpayne@68
|
200 #726 #727 Autotools: configure.ac: Support --disable-maintainer-mode
|
jpayne@68
|
201 #678 #705 ..
|
jpayne@68
|
202 #706 #733 #792 Autotools: Sync CMake templates with CMake 3.26
|
jpayne@68
|
203 #795 Autotools: Make installation of shipped man page doc/xmlwf.1
|
jpayne@68
|
204 independent of docbook2man availability
|
jpayne@68
|
205 #815 Autotools|CMake: Add missing -DXML_STATIC to pkg-config file
|
jpayne@68
|
206 section "Cflags.private" in order to fix compilation
|
jpayne@68
|
207 against static libexpat using pkg-config on Windows
|
jpayne@68
|
208 #724 #751 Autotools|CMake: Require a C99 compiler
|
jpayne@68
|
209 (a de-facto requirement already since Expat 2.2.2 of 2017)
|
jpayne@68
|
210 #793 Autotools|CMake: Fix PACKAGE_BUGREPORT variable
|
jpayne@68
|
211 #750 #786 Autotools|CMake: Make test suite require a C++11 compiler
|
jpayne@68
|
212 #749 CMake: Require CMake >=3.5.0
|
jpayne@68
|
213 #672 CMake: Lowercase off_t and size_t to help a bug in Meson
|
jpayne@68
|
214 #746 CMake: Sort xmlwf sources alphabetically
|
jpayne@68
|
215 #785 CMake|Windows: Fix generation of DLL file version info
|
jpayne@68
|
216 #790 CMake: Build tests/benchmark/benchmark.c as well for
|
jpayne@68
|
217 a build with -DEXPAT_BUILD_TESTS=ON
|
jpayne@68
|
218 #745 #757 docs: Document the importance of isFinal + adjust tests
|
jpayne@68
|
219 accordingly
|
jpayne@68
|
220 #736 docs: Improve use of "NULL" and "null"
|
jpayne@68
|
221 #713 docs: Be specific about version of XML (XML 1.0r4)
|
jpayne@68
|
222 and version of C (C99); (XML 1.0r5 will need a sponsor.)
|
jpayne@68
|
223 #762 docs: reference.html: Promote function XML_ParseBuffer more
|
jpayne@68
|
224 #779 docs: reference.html: Add HTML anchors to XML_* macros
|
jpayne@68
|
225 #760 docs: reference.html: Upgrade to OK.css 1.2.0
|
jpayne@68
|
226 #763 #739 docs: Fix typos
|
jpayne@68
|
227 #696 docs|CI: Use HTTPS URLs instead of HTTP at various places
|
jpayne@68
|
228 #669 #670 ..
|
jpayne@68
|
229 #692 #703 ..
|
jpayne@68
|
230 #733 #772 Address compiler warnings
|
jpayne@68
|
231 #798 #800 Address clang-tidy warnings
|
jpayne@68
|
232 #775 #776 Version info bumped from 9:10:8 (libexpat*.so.1.8.10)
|
jpayne@68
|
233 to 10:0:9 (libexpat*.so.1.9.0); see https://verbump.de/
|
jpayne@68
|
234 for what these numbers do
|
jpayne@68
|
235
|
jpayne@68
|
236 Infrastructure:
|
jpayne@68
|
237 #700 #701 docs: Document security policy in file SECURITY.md
|
jpayne@68
|
238 #766 docs: Improve parse buffer variables in-code documentation
|
jpayne@68
|
239 #674 #738 ..
|
jpayne@68
|
240 #740 #747 ..
|
jpayne@68
|
241 #748 #781 #782 Refactor coverage and conformance tests
|
jpayne@68
|
242 #714 #716 Refactor debug level variables to unsigned long
|
jpayne@68
|
243 #671 Improve handling of empty environment variable value
|
jpayne@68
|
244 in function getDebugLevel (without visible user effect)
|
jpayne@68
|
245 #755 #774 ..
|
jpayne@68
|
246 #758 #783 ..
|
jpayne@68
|
247 #784 #787 tests: Improve test coverage with regard to parse chunk size
|
jpayne@68
|
248 #660 #797 #801 Fuzzing: Improve fuzzing coverage
|
jpayne@68
|
249 #367 #799 Fuzzing|CI: Start running OSS-Fuzz fuzzing regression tests
|
jpayne@68
|
250 #698 #721 CI: Resolve some Travis CI leftovers
|
jpayne@68
|
251 #669 CI: Be robust towards absence of Git tags
|
jpayne@68
|
252 #693 #694 CI: Set permissions to "contents: read" for security
|
jpayne@68
|
253 #709 CI: Pin all GitHub Actions to specific commits for security
|
jpayne@68
|
254 #739 CI: Reject spelling errors using codespell
|
jpayne@68
|
255 #798 CI: Enforce clang-tidy clean code
|
jpayne@68
|
256 #773 #808 ..
|
jpayne@68
|
257 #809 #810 CI: Upgrade Clang from 15 to 18
|
jpayne@68
|
258 #796 CI: Start using Clang's Control Flow Integrity sanitizer
|
jpayne@68
|
259 #675 #720 #722 CI: Adapt to breaking changes in GitHub Actions Ubuntu images
|
jpayne@68
|
260 #689 CI: Adapt to breaking changes in Clang/LLVM Debian packaging
|
jpayne@68
|
261 #763 CI: Adapt to breaking changes in codespell
|
jpayne@68
|
262 #803 CI: Adapt to breaking changes in Cppcheck
|
jpayne@68
|
263
|
jpayne@68
|
264 Special thanks to:
|
jpayne@68
|
265 Ivan Galkin
|
jpayne@68
|
266 Joyce Brum
|
jpayne@68
|
267 Philippe Antoine
|
jpayne@68
|
268 Rhodri James
|
jpayne@68
|
269 Snild Dolkow
|
jpayne@68
|
270 spookyahell
|
jpayne@68
|
271 Steven Garske
|
jpayne@68
|
272 and
|
jpayne@68
|
273 Clang AddressSanitizer
|
jpayne@68
|
274 Clang UndefinedBehaviorSanitizer
|
jpayne@68
|
275 codespell
|
jpayne@68
|
276 GCC Farm Project
|
jpayne@68
|
277 OSS-Fuzz
|
jpayne@68
|
278 Sony Mobile
|
jpayne@68
|
279
|
jpayne@68
|
280 Release 2.5.0 Tue October 25 2022
|
jpayne@68
|
281 Security fixes:
|
jpayne@68
|
282 #616 #649 #650 CVE-2022-43680 -- Fix heap use-after-free after overeager
|
jpayne@68
|
283 destruction of a shared DTD in function
|
jpayne@68
|
284 XML_ExternalEntityParserCreate in out-of-memory situations.
|
jpayne@68
|
285 Expected impact is denial of service or potentially
|
jpayne@68
|
286 arbitrary code execution.
|
jpayne@68
|
287
|
jpayne@68
|
288 Bug fixes:
|
jpayne@68
|
289 #612 #645 Fix corruption from undefined entities
|
jpayne@68
|
290 #613 #654 Fix case when parsing was suspended while processing nested
|
jpayne@68
|
291 entities
|
jpayne@68
|
292 #616 #652 #653 Stop leaking opening tag bindings after a closing tag
|
jpayne@68
|
293 mismatch error where a parser is reset through
|
jpayne@68
|
294 XML_ParserReset and then reused to parse
|
jpayne@68
|
295 #656 CMake: Fix generation of pkg-config file
|
jpayne@68
|
296 #658 MinGW|CMake: Fix static library name
|
jpayne@68
|
297
|
jpayne@68
|
298 Other changes:
|
jpayne@68
|
299 #663 Protect header expat_config.h from multiple inclusion
|
jpayne@68
|
300 #666 examples: Make use of XML_GetBuffer and be more
|
jpayne@68
|
301 consistent across examples
|
jpayne@68
|
302 #648 Address compiler warnings
|
jpayne@68
|
303 #667 #668 Version info bumped from 9:9:8 to 9:10:8;
|
jpayne@68
|
304 see https://verbump.de/ for what these numbers do
|
jpayne@68
|
305
|
jpayne@68
|
306 Special thanks to:
|
jpayne@68
|
307 Jann Horn
|
jpayne@68
|
308 Mark Brand
|
jpayne@68
|
309 Osyotr
|
jpayne@68
|
310 Rhodri James
|
jpayne@68
|
311 and
|
jpayne@68
|
312 Google Project Zero
|
jpayne@68
|
313
|
jpayne@68
|
314 Release 2.4.9 Tue September 20 2022
|
jpayne@68
|
315 Security fixes:
|
jpayne@68
|
316 #629 #640 CVE-2022-40674 -- Heap use-after-free vulnerability in
|
jpayne@68
|
317 function doContent. Expected impact is denial of service
|
jpayne@68
|
318 or potentially arbitrary code execution.
|
jpayne@68
|
319
|
jpayne@68
|
320 Bug fixes:
|
jpayne@68
|
321 #634 MinGW: Fix mis-compilation for -D__USE_MINGW_ANSI_STDIO=0
|
jpayne@68
|
322 #614 docs: Fix documentation on effect of switch XML_DTD on
|
jpayne@68
|
323 symbol visibility in doc/reference.html
|
jpayne@68
|
324
|
jpayne@68
|
325 Other changes:
|
jpayne@68
|
326 #638 MinGW: Make fix-xmltest-log.sh drop more Wine bug output
|
jpayne@68
|
327 #596 #625 Autotools: Sync CMake templates with CMake 3.22
|
jpayne@68
|
328 #608 CMake: Migrate from use of CMAKE_*_POSTFIX to
|
jpayne@68
|
329 dedicated variables EXPAT_*_POSTFIX to stop affecting
|
jpayne@68
|
330 other projects
|
jpayne@68
|
331 #597 #599 Windows|CMake: Add missing -DXML_STATIC to test runners
|
jpayne@68
|
332 and fuzzers
|
jpayne@68
|
333 #512 #621 Windows|CMake: Render .def file from a template to fix
|
jpayne@68
|
334 linking with -DEXPAT_DTD=OFF and/or -DEXPAT_ATTR_INFO=ON
|
jpayne@68
|
335 #611 #621 MinGW|CMake: Apply MSVC .def file when linking
|
jpayne@68
|
336 #622 #624 MinGW|CMake: Sync library name with GNU Autotools,
|
jpayne@68
|
337 i.e. produce libexpat-1.dll rather than libexpat.dll
|
jpayne@68
|
338 by default. Filename libexpat.dll.a is unaffected.
|
jpayne@68
|
339 #632 MinGW|CMake: Set missing variable CMAKE_RC_COMPILER in
|
jpayne@68
|
340 toolchain file "cmake/mingw-toolchain.cmake" to avoid
|
jpayne@68
|
341 error "windres: Command not found" on e.g. Ubuntu 20.04
|
jpayne@68
|
342 #597 #627 CMake: Unify inconsistent use of set() and option() in
|
jpayne@68
|
343 context of public build time options to take need for
|
jpayne@68
|
344 set(.. FORCE) in projects using Expat by means of
|
jpayne@68
|
345 add_subdirectory(..) off Expat's users' shoulders
|
jpayne@68
|
346 #626 #641 Stop exporting API symbols when building a static library
|
jpayne@68
|
347 #644 Resolve use of deprecated "fgrep" by "grep -F"
|
jpayne@68
|
348 #620 CMake: Make documentation on variables a bit more consistent
|
jpayne@68
|
349 #636 CMake: Drop leading whitespace from a #cmakedefine line in
|
jpayne@68
|
350 file expat_config.h.cmake
|
jpayne@68
|
351 #594 xmlwf: Fix harmless variable mix-up in function nsattcmp
|
jpayne@68
|
352 #592 #593 #610 Address Cppcheck warnings
|
jpayne@68
|
353 #643 Address Clang 15 compiler warnings
|
jpayne@68
|
354 #642 #644 Version info bumped from 9:8:8 to 9:9:8;
|
jpayne@68
|
355 see https://verbump.de/ for what these numbers do
|
jpayne@68
|
356
|
jpayne@68
|
357 Infrastructure:
|
jpayne@68
|
358 #597 #598 CI: Windows: Start covering MSVC 2022
|
jpayne@68
|
359 #619 CI: macOS: Migrate off deprecated macOS 10.15
|
jpayne@68
|
360 #632 CI: Linux: Make migration off deprecated Ubuntu 18.04 work
|
jpayne@68
|
361 #643 CI: Upgrade Clang from 14 to 15
|
jpayne@68
|
362 #637 apply-clang-format.sh: Add support for BSD find
|
jpayne@68
|
363 #633 coverage.sh: Exclude MinGW headers
|
jpayne@68
|
364 #635 coverage.sh: Fix name collision for -funsigned-char
|
jpayne@68
|
365
|
jpayne@68
|
366 Special thanks to:
|
jpayne@68
|
367 David Faure
|
jpayne@68
|
368 Felix Wilhelm
|
jpayne@68
|
369 Frank Bergmann
|
jpayne@68
|
370 Rhodri James
|
jpayne@68
|
371 Rosen Penev
|
jpayne@68
|
372 Thijs Schreijer
|
jpayne@68
|
373 Vincent Torri
|
jpayne@68
|
374 and
|
jpayne@68
|
375 Google Project Zero
|
jpayne@68
|
376
|
jpayne@68
|
377 Release 2.4.8 Mon March 28 2022
|
jpayne@68
|
378 Other changes:
|
jpayne@68
|
379 #587 pkg-config: Move "-lm" to section "Libs.private"
|
jpayne@68
|
380 #587 CMake|MSVC: Fix pkg-config section "Libs"
|
jpayne@68
|
381 #55 #582 CMake|macOS: Start using linker arguments
|
jpayne@68
|
382 "-compatibility_version <version>" and
|
jpayne@68
|
383 "-current_version <version>" in a way compatible with
|
jpayne@68
|
384 GNU Libtool
|
jpayne@68
|
385 #590 #591 Version info bumped from 9:7:8 to 9:8:8;
|
jpayne@68
|
386 see https://verbump.de/ for what these numbers do
|
jpayne@68
|
387
|
jpayne@68
|
388 Infrastructure:
|
jpayne@68
|
389 #589 CI: Upgrade Clang from 13 to 14
|
jpayne@68
|
390
|
jpayne@68
|
391 Special thanks to:
|
jpayne@68
|
392 evpobr
|
jpayne@68
|
393 Kai Pastor
|
jpayne@68
|
394 Sam James
|
jpayne@68
|
395
|
jpayne@68
|
396 Release 2.4.7 Fri March 4 2022
|
jpayne@68
|
397 Bug fixes:
|
jpayne@68
|
398 #572 #577 Relax fix to CVE-2022-25236 (introduced with release 2.4.5)
|
jpayne@68
|
399 with regard to all valid URI characters (RFC 3986),
|
jpayne@68
|
400 i.e. the following set (excluding whitespace):
|
jpayne@68
|
401 ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz
|
jpayne@68
|
402 0123456789 % -._~ :/?#[]@ !$&'()*+,;=
|
jpayne@68
|
403
|
jpayne@68
|
404 Other changes:
|
jpayne@68
|
405 #555 #570 #581 CMake|Windows: Store Expat version in the DLL
|
jpayne@68
|
406 #577 Document consequences of namespace separator choices not just
|
jpayne@68
|
407 in doc/reference.html but also in header <expat.h>
|
jpayne@68
|
408 #577 Document Expat's lack of validation of namespace URIs against
|
jpayne@68
|
409 RFC 3986, and that the XML 1.0r4 specification doesn't
|
jpayne@68
|
410 require Expat to validate namespace URIs, and that Expat
|
jpayne@68
|
411 may do more in that regard in future releases.
|
jpayne@68
|
412 If you find need for strict RFC 3986 URI validation on
|
jpayne@68
|
413 application level today, https://uriparser.github.io/ may
|
jpayne@68
|
414 be of interest.
|
jpayne@68
|
415 #579 Fix documentation of XML_EndDoctypeDeclHandler in <expat.h>
|
jpayne@68
|
416 #575 Document that a call to XML_FreeContentModel can be done at
|
jpayne@68
|
417 a later time from outside the element declaration handler
|
jpayne@68
|
418 #574 Make hardcoded namespace URIs easier to find in code
|
jpayne@68
|
419 #573 Update documentation on use of XML_POOR_ENTOPY on Solaris
|
jpayne@68
|
420 #569 #571 tests: Resolve use of macros NAN and INFINITY for GNU G++
|
jpayne@68
|
421 4.8.2 on Solaris.
|
jpayne@68
|
422 #578 #580 Version info bumped from 9:6:8 to 9:7:8;
|
jpayne@68
|
423 see https://verbump.de/ for what these numbers do
|
jpayne@68
|
424
|
jpayne@68
|
425 Special thanks to:
|
jpayne@68
|
426 Jeffrey Walton
|
jpayne@68
|
427 Johnny Jazeix
|
jpayne@68
|
428 Thijs Schreijer
|
jpayne@68
|
429
|
jpayne@68
|
430 Release 2.4.6 Sun February 20 2022
|
jpayne@68
|
431 Bug fixes:
|
jpayne@68
|
432 #566 Fix a regression introduced by the fix for CVE-2022-25313
|
jpayne@68
|
433 in release 2.4.5 that affects applications that (1)
|
jpayne@68
|
434 call function XML_SetElementDeclHandler and (2) are
|
jpayne@68
|
435 parsing XML that contains nested element declarations
|
jpayne@68
|
436 (e.g. "<!ELEMENT junk ((bar|foo|xyz+), zebra*)>").
|
jpayne@68
|
437
|
jpayne@68
|
438 Other changes:
|
jpayne@68
|
439 #567 #568 Version info bumped from 9:5:8 to 9:6:8;
|
jpayne@68
|
440 see https://verbump.de/ for what these numbers do
|
jpayne@68
|
441
|
jpayne@68
|
442 Special thanks to:
|
jpayne@68
|
443 Matt Sergeant
|
jpayne@68
|
444 Samanta Navarro
|
jpayne@68
|
445 Sergei Trofimovich
|
jpayne@68
|
446 and
|
jpayne@68
|
447 NixOS
|
jpayne@68
|
448 Perl XML::Parser
|
jpayne@68
|
449
|
jpayne@68
|
450 Release 2.4.5 Fri February 18 2022
|
jpayne@68
|
451 Security fixes:
|
jpayne@68
|
452 #562 CVE-2022-25235 -- Passing malformed 2- and 3-byte UTF-8
|
jpayne@68
|
453 sequences (e.g. from start tag names) to the XML
|
jpayne@68
|
454 processing application on top of Expat can cause
|
jpayne@68
|
455 arbitrary damage (e.g. code execution) depending
|
jpayne@68
|
456 on how invalid UTF-8 is handled inside the XML
|
jpayne@68
|
457 processor; validation was not their job but Expat's.
|
jpayne@68
|
458 Exploits with code execution are known to exist.
|
jpayne@68
|
459 #561 CVE-2022-25236 -- Passing (one or more) namespace separator
|
jpayne@68
|
460 characters in "xmlns[:prefix]" attribute values
|
jpayne@68
|
461 made Expat send malformed tag names to the XML
|
jpayne@68
|
462 processor on top of Expat which can cause
|
jpayne@68
|
463 arbitrary damage (e.g. code execution) depending
|
jpayne@68
|
464 on such unexpectable cases are handled inside the XML
|
jpayne@68
|
465 processor; validation was not their job but Expat's.
|
jpayne@68
|
466 Exploits with code execution are known to exist.
|
jpayne@68
|
467 #558 CVE-2022-25313 -- Fix stack exhaustion in doctype parsing
|
jpayne@68
|
468 that could be triggered by e.g. a 2 megabytes
|
jpayne@68
|
469 file with a large number of opening braces.
|
jpayne@68
|
470 Expected impact is denial of service or potentially
|
jpayne@68
|
471 arbitrary code execution.
|
jpayne@68
|
472 #560 CVE-2022-25314 -- Fix integer overflow in function copyString;
|
jpayne@68
|
473 only affects the encoding name parameter at parser creation
|
jpayne@68
|
474 time which is often hardcoded (rather than user input),
|
jpayne@68
|
475 takes a value in the gigabytes to trigger, and a 64-bit
|
jpayne@68
|
476 machine. Expected impact is denial of service.
|
jpayne@68
|
477 #559 CVE-2022-25315 -- Fix integer overflow in function storeRawNames;
|
jpayne@68
|
478 needs input in the gigabytes and a 64-bit machine.
|
jpayne@68
|
479 Expected impact is denial of service or potentially
|
jpayne@68
|
480 arbitrary code execution.
|
jpayne@68
|
481
|
jpayne@68
|
482 Other changes:
|
jpayne@68
|
483 #557 #564 Version info bumped from 9:4:8 to 9:5:8;
|
jpayne@68
|
484 see https://verbump.de/ for what these numbers do
|
jpayne@68
|
485
|
jpayne@68
|
486 Special thanks to:
|
jpayne@68
|
487 Ivan Fratric
|
jpayne@68
|
488 Samanta Navarro
|
jpayne@68
|
489 and
|
jpayne@68
|
490 Google Project Zero
|
jpayne@68
|
491 JetBrains
|
jpayne@68
|
492
|
jpayne@68
|
493 Release 2.4.4 Sun January 30 2022
|
jpayne@68
|
494 Security fixes:
|
jpayne@68
|
495 #550 CVE-2022-23852 -- Fix signed integer overflow
|
jpayne@68
|
496 (undefined behavior) in function XML_GetBuffer
|
jpayne@68
|
497 (that is also called by function XML_Parse internally)
|
jpayne@68
|
498 for when XML_CONTEXT_BYTES is defined to >0 (which is both
|
jpayne@68
|
499 common and default).
|
jpayne@68
|
500 Impact is denial of service or more.
|
jpayne@68
|
501 #551 CVE-2022-23990 -- Fix unsigned integer overflow in function
|
jpayne@68
|
502 doProlog triggered by large content in element type
|
jpayne@68
|
503 declarations when there is an element declaration handler
|
jpayne@68
|
504 present (from a prior call to XML_SetElementDeclHandler).
|
jpayne@68
|
505 Impact is denial of service or more.
|
jpayne@68
|
506
|
jpayne@68
|
507 Bug fixes:
|
jpayne@68
|
508 #544 #545 xmlwf: Fix a memory leak on output file opening error
|
jpayne@68
|
509
|
jpayne@68
|
510 Other changes:
|
jpayne@68
|
511 #546 Autotools: Fix broken CMake support under Cygwin
|
jpayne@68
|
512 #554 Windows: Add missing files to the installer to fix
|
jpayne@68
|
513 compilation with CMake from installed sources
|
jpayne@68
|
514 #552 #554 Version info bumped from 9:3:8 to 9:4:8;
|
jpayne@68
|
515 see https://verbump.de/ for what these numbers do
|
jpayne@68
|
516
|
jpayne@68
|
517 Special thanks to:
|
jpayne@68
|
518 Carlo Bramini
|
jpayne@68
|
519 hwt0415
|
jpayne@68
|
520 Roland Illig
|
jpayne@68
|
521 Samanta Navarro
|
jpayne@68
|
522 and
|
jpayne@68
|
523 Clang LeakSan and the Clang team
|
jpayne@68
|
524
|
jpayne@68
|
525 Release 2.4.3 Sun January 16 2022
|
jpayne@68
|
526 Security fixes:
|
jpayne@68
|
527 #531 #534 CVE-2021-45960 -- Fix issues with left shifts by >=29 places
|
jpayne@68
|
528 resulting in
|
jpayne@68
|
529 a) realloc acting as free
|
jpayne@68
|
530 b) realloc allocating too few bytes
|
jpayne@68
|
531 c) undefined behavior
|
jpayne@68
|
532 depending on architecture and precise value
|
jpayne@68
|
533 for XML documents with >=2^27+1 prefixed attributes
|
jpayne@68
|
534 on a single XML tag a la
|
jpayne@68
|
535 "<r xmlns:a='[..]' a:a123='[..]' [..] />"
|
jpayne@68
|
536 where XML_ParserCreateNS is used to create the parser
|
jpayne@68
|
537 (which needs argument "-n" when running xmlwf).
|
jpayne@68
|
538 Impact is denial of service, or more.
|
jpayne@68
|
539 #532 #538 CVE-2021-46143 (ZDI-CAN-16157) -- Fix integer overflow
|
jpayne@68
|
540 on variable m_groupSize in function doProlog leading
|
jpayne@68
|
541 to realloc acting as free.
|
jpayne@68
|
542 Impact is denial of service or more.
|
jpayne@68
|
543 #539 CVE-2022-22822 to CVE-2022-22827 -- Prevent integer overflows
|
jpayne@68
|
544 near memory allocation at multiple places. Mitre assigned
|
jpayne@68
|
545 a dedicated CVE for each involved internal C function:
|
jpayne@68
|
546 - CVE-2022-22822 for function addBinding
|
jpayne@68
|
547 - CVE-2022-22823 for function build_model
|
jpayne@68
|
548 - CVE-2022-22824 for function defineAttribute
|
jpayne@68
|
549 - CVE-2022-22825 for function lookup
|
jpayne@68
|
550 - CVE-2022-22826 for function nextScaffoldPart
|
jpayne@68
|
551 - CVE-2022-22827 for function storeAtts
|
jpayne@68
|
552 Impact is denial of service or more.
|
jpayne@68
|
553
|
jpayne@68
|
554 Other changes:
|
jpayne@68
|
555 #535 CMake: Make call to file(GENERATE [..]) work for CMake <3.19
|
jpayne@68
|
556 #541 Autotools|CMake: MinGW: Make run.sh(.in) work for Cygwin
|
jpayne@68
|
557 and MSYS2 by not going through Wine on these platforms
|
jpayne@68
|
558 #527 #528 Address compiler warnings
|
jpayne@68
|
559 #533 #543 Version info bumped from 9:2:8 to 9:3:8;
|
jpayne@68
|
560 see https://verbump.de/ for what these numbers do
|
jpayne@68
|
561
|
jpayne@68
|
562 Infrastructure:
|
jpayne@68
|
563 #536 CI: Check for realistic minimum CMake version
|
jpayne@68
|
564 #529 #539 CI: Cover compilation with -m32
|
jpayne@68
|
565 #529 CI: Store coverage reports as artifacts for download
|
jpayne@68
|
566 #528 CI: Upgrade Clang from 11 to 13
|
jpayne@68
|
567
|
jpayne@68
|
568 Special thanks to:
|
jpayne@68
|
569 An anonymous whitehat
|
jpayne@68
|
570 Christopher Degawa
|
jpayne@68
|
571 J. Peter Mugaas
|
jpayne@68
|
572 Tyson Smith
|
jpayne@68
|
573 and
|
jpayne@68
|
574 GCC Farm Project
|
jpayne@68
|
575 Trend Micro Zero Day Initiative
|
jpayne@68
|
576
|
jpayne@68
|
577 Release 2.4.2 Sun December 19 2021
|
jpayne@68
|
578 Other changes:
|
jpayne@68
|
579 #509 #510 Link againgst libm for function "isnan"
|
jpayne@68
|
580 #513 #514 Include expat_config.h as early as possible
|
jpayne@68
|
581 #498 Autotools: Include files with release archives:
|
jpayne@68
|
582 - buildconf.sh
|
jpayne@68
|
583 - fuzz/*.c
|
jpayne@68
|
584 #507 #519 Autotools: Sync CMake templates with CMake 3.20
|
jpayne@68
|
585 #495 #524 CMake: MinGW: Fix pkg-config section "Libs" for
|
jpayne@68
|
586 - non-release build types (e.g. -DCMAKE_BUILD_TYPE=Debug)
|
jpayne@68
|
587 - multi-config CMake generators (e.g. Ninja Multi-Config)
|
jpayne@68
|
588 #502 #503 docs: Document that function XML_GetBuffer may return NULL
|
jpayne@68
|
589 when asking for a buffer of 0 (zero) bytes size
|
jpayne@68
|
590 #522 #523 docs: Fix return value docs for both
|
jpayne@68
|
591 XML_SetBillionLaughsAttackProtection* functions
|
jpayne@68
|
592 #525 #526 Version info bumped from 9:1:8 to 9:2:8;
|
jpayne@68
|
593 see https://verbump.de/ for what these numbers do
|
jpayne@68
|
594
|
jpayne@68
|
595 Special thanks to:
|
jpayne@68
|
596 Donghee Na
|
jpayne@68
|
597 Joergen Ibsen
|
jpayne@68
|
598 Kai Pastor
|
jpayne@68
|
599
|
jpayne@68
|
600 Release 2.4.1 Sun May 23 2021
|
jpayne@68
|
601 Bug fixes:
|
jpayne@68
|
602 #488 #490 Autotools: Fix installed header expat_config.h for multilib
|
jpayne@68
|
603 systems; regression introduced in 2.4.0 by pull request #486
|
jpayne@68
|
604
|
jpayne@68
|
605 Other changes:
|
jpayne@68
|
606 #491 #492 Version info bumped from 9:0:8 to 9:1:8;
|
jpayne@68
|
607 see https://verbump.de/ for what these numbers do
|
jpayne@68
|
608
|
jpayne@68
|
609 Special thanks to:
|
jpayne@68
|
610 Gentoo's QA check "multilib_check_headers"
|
jpayne@68
|
611
|
jpayne@68
|
612 Release 2.4.0 Sun May 23 2021
|
jpayne@68
|
613 Security fixes:
|
jpayne@68
|
614 #34 #466 #484 CVE-2013-0340/CWE-776 -- Protect against billion laughs attacks
|
jpayne@68
|
615 (denial-of-service; flavors targeting CPU time or RAM or both,
|
jpayne@68
|
616 leveraging general entities or parameter entities or both)
|
jpayne@68
|
617 by tracking and limiting the input amplification factor
|
jpayne@68
|
618 (<amplification> := (<direct> + <indirect>) / <direct>).
|
jpayne@68
|
619 By conservative default, amplification up to a factor of 100.0
|
jpayne@68
|
620 is tolerated and rejection only starts after 8 MiB of output bytes
|
jpayne@68
|
621 (=<direct> + <indirect>) have been processed.
|
jpayne@68
|
622 The fix adds the following to the API:
|
jpayne@68
|
623 - A new error code XML_ERROR_AMPLIFICATION_LIMIT_BREACH to
|
jpayne@68
|
624 signals this specific condition.
|
jpayne@68
|
625 - Two new API functions ..
|
jpayne@68
|
626 - XML_SetBillionLaughsAttackProtectionMaximumAmplification and
|
jpayne@68
|
627 - XML_SetBillionLaughsAttackProtectionActivationThreshold
|
jpayne@68
|
628 .. to further tighten billion laughs protection parameters
|
jpayne@68
|
629 when desired. Please see file "doc/reference.html" for details.
|
jpayne@68
|
630 If you ever need to increase the defaults for non-attack XML
|
jpayne@68
|
631 payload, please file a bug report with libexpat.
|
jpayne@68
|
632 - Two new XML_FEATURE_* constants ..
|
jpayne@68
|
633 - that can be queried using the XML_GetFeatureList function, and
|
jpayne@68
|
634 - that are shown in "xmlwf -v" output.
|
jpayne@68
|
635 - Two new environment variable switches ..
|
jpayne@68
|
636 - EXPAT_ACCOUNTING_DEBUG=(0|1|2|3) and
|
jpayne@68
|
637 - EXPAT_ENTITY_DEBUG=(0|1)
|
jpayne@68
|
638 .. for runtime debugging of accounting and entity processing.
|
jpayne@68
|
639 Specific behavior of these values may change in the future.
|
jpayne@68
|
640 - Two new command line arguments "-a FACTOR" and "-b BYTES"
|
jpayne@68
|
641 for xmlwf to further tighten billion laughs protection
|
jpayne@68
|
642 parameters when desired.
|
jpayne@68
|
643 If you ever need to increase the defaults for non-attack XML
|
jpayne@68
|
644 payload, please file a bug report with libexpat.
|
jpayne@68
|
645
|
jpayne@68
|
646 Bug fixes:
|
jpayne@68
|
647 #332 #470 For (non-default) compilation with -DEXPAT_MIN_SIZE=ON (CMake)
|
jpayne@68
|
648 or CPPFLAGS=-DXML_MIN_SIZE (GNU Autotools): Fix segfault
|
jpayne@68
|
649 for UTF-16 payloads containing CDATA sections.
|
jpayne@68
|
650 #485 #486 Autotools: Fix generated CMake files for non-64bit and
|
jpayne@68
|
651 non-Linux platforms (e.g. macOS and MinGW in particular)
|
jpayne@68
|
652 that were introduced with release 2.3.0
|
jpayne@68
|
653
|
jpayne@68
|
654 Other changes:
|
jpayne@68
|
655 #468 #469 xmlwf: Improve help output and the xmlwf man page
|
jpayne@68
|
656 #463 xmlwf: Improve maintainability through some refactoring
|
jpayne@68
|
657 #477 xmlwf: Fix man page DocBook validity
|
jpayne@68
|
658 #456 Autotools: Sync CMake templates with CMake 3.18
|
jpayne@68
|
659 #458 #459 CMake: Support absolute paths for both CMAKE_INSTALL_LIBDIR
|
jpayne@68
|
660 and CMAKE_INSTALL_INCLUDEDIR
|
jpayne@68
|
661 #471 #481 CMake: Add support for standard variable BUILD_SHARED_LIBS
|
jpayne@68
|
662 #457 Unexpose symbol _INTERNAL_trim_to_complete_utf8_characters
|
jpayne@68
|
663 #467 Resolve macro HAVE_EXPAT_CONFIG_H
|
jpayne@68
|
664 #472 Delete unused legacy helper file "conftools/PrintPath"
|
jpayne@68
|
665 #473 #483 Improve attribution
|
jpayne@68
|
666 #464 #465 #477 doc/reference.html: Fix XHTML validity
|
jpayne@68
|
667 #475 #478 doc/reference.html: Replace the 90s look by OK.css
|
jpayne@68
|
668 #479 Version info bumped from 8:0:7 to 9:0:8
|
jpayne@68
|
669 due to addition of new symbols and error codes;
|
jpayne@68
|
670 see https://verbump.de/ for what these numbers do
|
jpayne@68
|
671
|
jpayne@68
|
672 Infrastructure:
|
jpayne@68
|
673 #456 CI: Enable periodic runs
|
jpayne@68
|
674 #457 CI: Start covering the list of exported symbols
|
jpayne@68
|
675 #474 CI: Isolate coverage task
|
jpayne@68
|
676 #476 #482 CI: Adapt to breaking changes in image "ubuntu-18.04"
|
jpayne@68
|
677 #477 CI: Cover well-formedness and DocBook/XHTML validity
|
jpayne@68
|
678 of doc/reference.html and doc/xmlwf.xml
|
jpayne@68
|
679
|
jpayne@68
|
680 Special thanks to:
|
jpayne@68
|
681 Dimitry Andric
|
jpayne@68
|
682 Eero Helenius
|
jpayne@68
|
683 Nick Wellnhofer
|
jpayne@68
|
684 Rhodri James
|
jpayne@68
|
685 Tomas Korbar
|
jpayne@68
|
686 Yury Gribov
|
jpayne@68
|
687 and
|
jpayne@68
|
688 Clang LeakSan
|
jpayne@68
|
689 JetBrains
|
jpayne@68
|
690 OSS-Fuzz
|
jpayne@68
|
691
|
jpayne@68
|
692 Release 2.3.0 Thu March 25 2021
|
jpayne@68
|
693 Bug fixes:
|
jpayne@68
|
694 #438 When calling XML_ParseBuffer without a prior successful call to
|
jpayne@68
|
695 XML_GetBuffer as a user, no longer trigger undefined behavior
|
jpayne@68
|
696 (by adding an integer to a NULL pointer) but rather return
|
jpayne@68
|
697 XML_STATUS_ERROR and set the error code to (new) code
|
jpayne@68
|
698 XML_ERROR_NO_BUFFER. Found by UBSan (UndefinedBehaviorSanitizer)
|
jpayne@68
|
699 of Clang 11 (but not Clang 9).
|
jpayne@68
|
700 #444 xmlwf: Exit status 2 was used for both:
|
jpayne@68
|
701 - malformed input files (documented) and
|
jpayne@68
|
702 - invalid command-line arguments (undocumented).
|
jpayne@68
|
703 The case of invalid command-line arguments now
|
jpayne@68
|
704 has its own exit status 4, resolving the ambiguity.
|
jpayne@68
|
705
|
jpayne@68
|
706 Other changes:
|
jpayne@68
|
707 #439 xmlwf: Add argument -k to allow continuing after
|
jpayne@68
|
708 non-fatal errors
|
jpayne@68
|
709 #439 xmlwf: Add section about exit status to the -h help output
|
jpayne@68
|
710 #422 #426 #447 Windows: Drop support for Visual Studio <=14.0/2015
|
jpayne@68
|
711 #434 Windows: CMake: Detect unsupported Visual Studio at
|
jpayne@68
|
712 configure time (rather than at compile time)
|
jpayne@68
|
713 #382 #428 testrunner: Make verbose mode (argument "-v") report
|
jpayne@68
|
714 about passed tests, and make default mode report about
|
jpayne@68
|
715 failures, as well.
|
jpayne@68
|
716 #442 CMake: Call "enable_language(CXX)" prior to tinkering
|
jpayne@68
|
717 with CMAKE_CXX_* variables
|
jpayne@68
|
718 #448 Document use of libexpat from a CMake-based project
|
jpayne@68
|
719 #451 Autotools: Install CMake files as generated by CMake 3.19.6
|
jpayne@68
|
720 so that users with "find_package(expat [..] CONFIG [..])"
|
jpayne@68
|
721 are served on distributions that are *not* using the CMake
|
jpayne@68
|
722 build system inside for libexpat packaging
|
jpayne@68
|
723 #436 #437 Autotools: Drop obsolescent macro AC_HEADER_STDC
|
jpayne@68
|
724 #450 #452 Autotools: Resolve use of obsolete macro AC_CONFIG_HEADER
|
jpayne@68
|
725 #441 Address compiler warnings
|
jpayne@68
|
726 #443 Version info bumped from 7:12:6 to 8:0:7
|
jpayne@68
|
727 due to addition of error code XML_ERROR_NO_BUFFER
|
jpayne@68
|
728 (see https://verbump.de/ for what these numbers do)
|
jpayne@68
|
729
|
jpayne@68
|
730 Infrastructure:
|
jpayne@68
|
731 #435 #446 Replace Travis CI by GitHub Actions
|
jpayne@68
|
732
|
jpayne@68
|
733 Special thanks to:
|
jpayne@68
|
734 Alexander Richardson
|
jpayne@68
|
735 Oleksandr Popovych
|
jpayne@68
|
736 Thomas Beutlich
|
jpayne@68
|
737 Tim Bray
|
jpayne@68
|
738 and
|
jpayne@68
|
739 Clang LeakSan, Clang 11 UBSan and the Clang team
|
jpayne@68
|
740
|
jpayne@68
|
741 Release 2.2.10 Sat October 3 2020
|
jpayne@68
|
742 Bug fixes:
|
jpayne@68
|
743 #390 #395 #398 Fix undefined behavior during parsing caused by
|
jpayne@68
|
744 pointer arithmetic with NULL pointers
|
jpayne@68
|
745 #404 #405 Fix reading uninitialized variable during parsing
|
jpayne@68
|
746 #406 xmlwf: Add missing check for malloc NULL return
|
jpayne@68
|
747
|
jpayne@68
|
748 Other changes:
|
jpayne@68
|
749 #396 Windows: Drop support for Visual Studio <=8.0/2005
|
jpayne@68
|
750 #409 Windows: Add missing file "Changes" to the installer
|
jpayne@68
|
751 to fix compilation with CMake from installed sources
|
jpayne@68
|
752 #403 xmlwf: Document exit codes in xmlwf manpage and
|
jpayne@68
|
753 exit with code 3 (rather than code 1) for output errors
|
jpayne@68
|
754 when used with "-d DIRECTORY"
|
jpayne@68
|
755 #356 #359 MinGW: Provide declaration of rand_s for mingwrt <5.3.0
|
jpayne@68
|
756 #383 #392 Autotools: Use -Werror while configure tests the compiler
|
jpayne@68
|
757 for supported compile flags to avoid false positives
|
jpayne@68
|
758 #383 #393 #394 Autotools: Improve handling of user (C|CPP|CXX|LD)FLAGS,
|
jpayne@68
|
759 e.g. ensure that they have the last word over flags added
|
jpayne@68
|
760 while running ./configure
|
jpayne@68
|
761 #360 CMake: Create libexpatw.{dll,so} and expatw.pc (with emphasis
|
jpayne@68
|
762 on suffix "w") with -DEXPAT_CHAR_TYPE=(ushort|wchar_t)
|
jpayne@68
|
763 #360 CMake: Detect and deny unsupported build combinations
|
jpayne@68
|
764 involving -DEXPAT_CHAR_TYPE=(ushort|wchar_t)
|
jpayne@68
|
765 #360 CMake: Install pre-compiled shipped xmlwf.1 manpage in case
|
jpayne@68
|
766 of -DEXPAT_BUILD_DOCS=OFF
|
jpayne@68
|
767 #375 #380 #419 CMake: Fix use of Expat by means of add_subdirectory
|
jpayne@68
|
768 #407 #408 CMake: Keep expat target name constant at "expat"
|
jpayne@68
|
769 (i.e. refrain from using the target name to control
|
jpayne@68
|
770 build artifact filenames)
|
jpayne@68
|
771 #385 CMake: Fix compilation with -DEXPAT_SHARED_LIBS=OFF for
|
jpayne@68
|
772 Windows
|
jpayne@68
|
773 CMake: Expose man page compilation as target "xmlwf-manpage"
|
jpayne@68
|
774 #413 #414 CMake: Introduce option EXPAT_BUILD_PKGCONFIG
|
jpayne@68
|
775 to control generation of pkg-config file "expat.pc"
|
jpayne@68
|
776 #424 CMake: Add minimalistic support for building binary packages
|
jpayne@68
|
777 with CMake target "package"; based on CPack
|
jpayne@68
|
778 #366 CMake: Add option -DEXPAT_OSSFUZZ_BUILD=(ON|OFF) with
|
jpayne@68
|
779 default OFF to build fuzzer code against OSS-Fuzz and
|
jpayne@68
|
780 related environment variable LIB_FUZZING_ENGINE
|
jpayne@68
|
781 #354 Fix testsuite for -DEXPAT_DTD=OFF and -DEXPAT_NS=OFF, each
|
jpayne@68
|
782 #354 #355 ..
|
jpayne@68
|
783 #356 #412 Address compiler warnings
|
jpayne@68
|
784 #368 #369 Address pngcheck warnings with doc/*.png images
|
jpayne@68
|
785 #425 Version info bumped from 7:11:6 to 7:12:6
|
jpayne@68
|
786
|
jpayne@68
|
787 Special thanks to:
|
jpayne@68
|
788 asavah
|
jpayne@68
|
789 Ben Wagner
|
jpayne@68
|
790 Bhargava Shastry
|
jpayne@68
|
791 Frank Landgraf
|
jpayne@68
|
792 Jeffrey Walton
|
jpayne@68
|
793 Joe Orton
|
jpayne@68
|
794 Kleber Tarcísio
|
jpayne@68
|
795 Ma Lin
|
jpayne@68
|
796 Maciej Sroczyński
|
jpayne@68
|
797 Mohammed Khajapasha
|
jpayne@68
|
798 Vadim Zeitlin
|
jpayne@68
|
799 and
|
jpayne@68
|
800 Cppcheck 2.0 and the Cppcheck team
|
jpayne@68
|
801
|
jpayne@68
|
802 Release 2.2.9 Wed September 25 2019
|
jpayne@68
|
803 Other changes:
|
jpayne@68
|
804 examples: Drop executable bits from elements.c
|
jpayne@68
|
805 #349 Windows: Change the name of the Windows DLLs from expat*.dll
|
jpayne@68
|
806 to libexpat*.dll once more (regression from 2.2.8, first
|
jpayne@68
|
807 fixed in 1.95.3, issue #61 on SourceForge today,
|
jpayne@68
|
808 was issue #432456 back then); needs a fix due
|
jpayne@68
|
809 case-insensitive file systems on Windows and the fact that
|
jpayne@68
|
810 Perl's XML::Parser::Expat compiles into Expat.dll.
|
jpayne@68
|
811 #347 Windows: Only define _CRT_RAND_S if not defined
|
jpayne@68
|
812 Version info bumped from 7:10:6 to 7:11:6
|
jpayne@68
|
813
|
jpayne@68
|
814 Special thanks to:
|
jpayne@68
|
815 Ben Wagner
|
jpayne@68
|
816
|
jpayne@68
|
817 Release 2.2.8 Fri September 13 2019
|
jpayne@68
|
818 Security fixes:
|
jpayne@68
|
819 #317 #318 CVE-2019-15903 -- Fix heap overflow triggered by
|
jpayne@68
|
820 XML_GetCurrentLineNumber (or XML_GetCurrentColumnNumber),
|
jpayne@68
|
821 and deny internal entities closing the doctype;
|
jpayne@68
|
822 fixed in commit c20b758c332d9a13afbbb276d30db1d183a85d43
|
jpayne@68
|
823
|
jpayne@68
|
824 Bug fixes:
|
jpayne@68
|
825 #240 Fix cases where XML_StopParser did not have any effect
|
jpayne@68
|
826 when called from inside of an end element handler
|
jpayne@68
|
827 #341 xmlwf: Fix exit code for operation without "-d DIRECTORY";
|
jpayne@68
|
828 previously, only "-d DIRECTORY" would give you a proper
|
jpayne@68
|
829 exit code:
|
jpayne@68
|
830 # xmlwf -d . <<<'<not well-formed>' 2>/dev/null ; echo $?
|
jpayne@68
|
831 2
|
jpayne@68
|
832 # xmlwf <<<'<not well-formed>' 2>/dev/null ; echo $?
|
jpayne@68
|
833 0
|
jpayne@68
|
834 Now both cases return exit code 2.
|
jpayne@68
|
835
|
jpayne@68
|
836 Other changes:
|
jpayne@68
|
837 #299 #302 Windows: Replace LoadLibrary hack to access
|
jpayne@68
|
838 unofficial API function SystemFunction036 (RtlGenRandom)
|
jpayne@68
|
839 by using official API function rand_s (needs WinXP+)
|
jpayne@68
|
840 #325 Windows: Drop support for Visual Studio <=7.1/2003
|
jpayne@68
|
841 and document supported compilers in README.md
|
jpayne@68
|
842 #286 Windows: Remove COM code from xmlwf; in case it turns
|
jpayne@68
|
843 out needed later, there will be a dedicated repository
|
jpayne@68
|
844 below https://github.com/libexpat/ for that code
|
jpayne@68
|
845 #322 Windows: Remove explicit MSVC solution and project files.
|
jpayne@68
|
846 You can generate Visual Studio solution files through
|
jpayne@68
|
847 CMake, e.g.: cmake -G"Visual Studio 15 2017" .
|
jpayne@68
|
848 #338 xmlwf: Make "xmlwf -h" help output more friendly
|
jpayne@68
|
849 #339 examples: Improve elements.c
|
jpayne@68
|
850 #244 #264 Autotools: Add argument --enable-xml-attr-info
|
jpayne@68
|
851 #239 #301 Autotools: Add arguments
|
jpayne@68
|
852 --with-getrandom
|
jpayne@68
|
853 --without-getrandom
|
jpayne@68
|
854 --with-sys-getrandom
|
jpayne@68
|
855 --without-sys-getrandom
|
jpayne@68
|
856 #312 #343 Autotools: Fix linking issues with "./configure LD=clang"
|
jpayne@68
|
857 Autotools: Fix "make run-xmltest" for out-of-source builds
|
jpayne@68
|
858 #329 #336 CMake: Pull all options from Expat <=2.2.7 into namespace
|
jpayne@68
|
859 prefix EXPAT_ with the exception of DOCBOOK_TO_MAN:
|
jpayne@68
|
860 - BUILD_doc -> EXPAT_BUILD_DOCS (plural)
|
jpayne@68
|
861 - BUILD_examples -> EXPAT_BUILD_EXAMPLES
|
jpayne@68
|
862 - BUILD_shared -> EXPAT_SHARED_LIBS
|
jpayne@68
|
863 - BUILD_tests -> EXPAT_BUILD_TESTS
|
jpayne@68
|
864 - BUILD_tools -> EXPAT_BUILD_TOOLS
|
jpayne@68
|
865 - DOCBOOK_TO_MAN -> DOCBOOK_TO_MAN (unchanged)
|
jpayne@68
|
866 - INSTALL -> EXPAT_ENABLE_INSTALL
|
jpayne@68
|
867 - MSVC_USE_STATIC_CRT -> EXPAT_MSVC_STATIC_CRT
|
jpayne@68
|
868 - USE_libbsd -> EXPAT_WITH_LIBBSD
|
jpayne@68
|
869 - WARNINGS_AS_ERRORS -> EXPAT_WARNINGS_AS_ERRORS
|
jpayne@68
|
870 - XML_CONTEXT_BYTES -> EXPAT_CONTEXT_BYTES
|
jpayne@68
|
871 - XML_DEV_URANDOM -> EXPAT_DEV_URANDOM
|
jpayne@68
|
872 - XML_DTD -> EXPAT_DTD
|
jpayne@68
|
873 - XML_NS -> EXPAT_NS
|
jpayne@68
|
874 - XML_UNICODE -> EXPAT_CHAR_TYPE=ushort (!)
|
jpayne@68
|
875 - XML_UNICODE_WCHAR_T -> EXPAT_CHAR_TYPE=wchar_t (!)
|
jpayne@68
|
876 #244 #264 CMake: Add argument -DEXPAT_ATTR_INFO=(ON|OFF),
|
jpayne@68
|
877 default OFF
|
jpayne@68
|
878 #326 CMake: Add argument -DEXPAT_LARGE_SIZE=(ON|OFF),
|
jpayne@68
|
879 default OFF
|
jpayne@68
|
880 #328 CMake: Add argument -DEXPAT_MIN_SIZE=(ON|OFF),
|
jpayne@68
|
881 default OFF
|
jpayne@68
|
882 #239 #277 CMake: Add arguments
|
jpayne@68
|
883 -DEXPAT_WITH_GETRANDOM=(ON|OFF|AUTO), default AUTO
|
jpayne@68
|
884 -DEXPAT_WITH_SYS_GETRANDOM=(ON|OFF|AUTO), default AUTO
|
jpayne@68
|
885 #326 CMake: Install expat_config.h to include directory
|
jpayne@68
|
886 #326 CMake: Generate and install configuration files for
|
jpayne@68
|
887 future find_package(expat [..] CONFIG [..])
|
jpayne@68
|
888 CMake: Now produces a summary of applied configuration
|
jpayne@68
|
889 CMake: Require C++ compiler only when tests are enabled
|
jpayne@68
|
890 #330 CMake: Fix compilation for 16bit character types,
|
jpayne@68
|
891 i.e. ex -DXML_UNICODE=ON (and ex -DXML_UNICODE_WCHAR_T=ON)
|
jpayne@68
|
892 #265 CMake: Fix linking with MinGW
|
jpayne@68
|
893 #330 CMake: Add full support for MinGW; to enable, use
|
jpayne@68
|
894 -DCMAKE_TOOLCHAIN_FILE=[expat]/cmake/mingw-toolchain.cmake
|
jpayne@68
|
895 #330 CMake: Port "make run-xmltest" from GNU Autotools to CMake
|
jpayne@68
|
896 #316 CMake: Windows: Make binary postfix match MSVC
|
jpayne@68
|
897 Old: expat[d].lib
|
jpayne@68
|
898 New: expat[w][d][MD|MT].lib
|
jpayne@68
|
899 CMake: Migrate files from Windows to Unix line endings
|
jpayne@68
|
900 #308 CMake: Integrate OSS-Fuzz fuzzers, option
|
jpayne@68
|
901 -DEXPAT_BUILD_FUZZERS=(ON|OFF), default OFF
|
jpayne@68
|
902 #14 Drop an OpenVMS support leftover
|
jpayne@68
|
903 #235 #268 ..
|
jpayne@68
|
904 #270 #310 ..
|
jpayne@68
|
905 #313 #331 #333 Address compiler warnings
|
jpayne@68
|
906 #282 #283 ..
|
jpayne@68
|
907 #284 #285 Address cppcheck warnings
|
jpayne@68
|
908 #294 #295 Address Clang Static Analyzer warnings
|
jpayne@68
|
909 #24 #293 Mass-apply clang-format 9 (and ensure conformance during CI)
|
jpayne@68
|
910 Version info bumped from 7:9:6 to 7:10:6
|
jpayne@68
|
911
|
jpayne@68
|
912 Special thanks to:
|
jpayne@68
|
913 David Loffredo
|
jpayne@68
|
914 Joonun Jang
|
jpayne@68
|
915 Kishore Kunche
|
jpayne@68
|
916 Marco Maggi
|
jpayne@68
|
917 Mitch Phillips
|
jpayne@68
|
918 Mohammed Khajapasha
|
jpayne@68
|
919 Rolf Ade
|
jpayne@68
|
920 xantares
|
jpayne@68
|
921 Zhongyuan Zhou
|
jpayne@68
|
922
|
jpayne@68
|
923 Release 2.2.7 Wed June 19 2019
|
jpayne@68
|
924 Security fixes:
|
jpayne@68
|
925 #186 #262 CVE-2018-20843 -- Fix extraction of namespace prefixes from
|
jpayne@68
|
926 XML names; XML names with multiple colons could end up in
|
jpayne@68
|
927 the wrong namespace, and take a high amount of RAM and CPU
|
jpayne@68
|
928 resources while processing, opening the door to
|
jpayne@68
|
929 use for denial-of-service attacks
|
jpayne@68
|
930
|
jpayne@68
|
931 Other changes:
|
jpayne@68
|
932 #195 #197 Autotools/CMake: Utilize -fvisibility=hidden to stop
|
jpayne@68
|
933 exporting non-API symbols
|
jpayne@68
|
934 #227 Autotools: Add --without-examples and --without-tests
|
jpayne@68
|
935 #228 Autotools: Modernize configure.ac
|
jpayne@68
|
936 #245 #246 Autotools: Fix check for -fvisibility=hidden for Clang
|
jpayne@68
|
937 #247 #248 Autotools: Fix compilation for lack of docbook2x-man
|
jpayne@68
|
938 #236 #258 Autotools: Produce .tar.{gz,lz,xz} release archives
|
jpayne@68
|
939 #212 CMake: Make libdir of pkgconfig expat.pc support multilib
|
jpayne@68
|
940 #158 #263 CMake: Build man page in PROJECT_BINARY_DIR not _SOURCE_DIR
|
jpayne@68
|
941 #219 Remove fallback to bcopy, assume that memmove(3) exists
|
jpayne@68
|
942 #257 Use portable "/usr/bin/env bash" shebang (e.g. for OpenBSD)
|
jpayne@68
|
943 #243 Windows: Fix syntax of .def module definition files
|
jpayne@68
|
944 Version info bumped from 7:8:6 to 7:9:6
|
jpayne@68
|
945
|
jpayne@68
|
946 Special thanks to:
|
jpayne@68
|
947 Benjamin Peterson
|
jpayne@68
|
948 Caolán McNamara
|
jpayne@68
|
949 Hanno Böck
|
jpayne@68
|
950 KangLin
|
jpayne@68
|
951 Kishore Kunche
|
jpayne@68
|
952 Marco Maggi
|
jpayne@68
|
953 Rhodri James
|
jpayne@68
|
954 Sebastian Dröge
|
jpayne@68
|
955 userwithuid
|
jpayne@68
|
956 Yury Gribov
|
jpayne@68
|
957
|
jpayne@68
|
958 Release 2.2.6 Sun August 12 2018
|
jpayne@68
|
959 Bug fixes:
|
jpayne@68
|
960 #170 #206 Avoid doing arithmetic with NULL pointers in XML_GetBuffer
|
jpayne@68
|
961 #204 #205 Fix 2.2.5 regression with suspend-resume while parsing
|
jpayne@68
|
962 a document like '<root/>'
|
jpayne@68
|
963
|
jpayne@68
|
964 Other changes:
|
jpayne@68
|
965 #165 #168 Autotools: Fix docbook-related configure syntax error
|
jpayne@68
|
966 #166 Autotools: Avoid grep option `-q` for Solaris
|
jpayne@68
|
967 #167 Autotools: Support
|
jpayne@68
|
968 ./configure DOCBOOK_TO_MAN="xmlto man --skip-validation"
|
jpayne@68
|
969 #159 #167 Autotools: Support DOCBOOK_TO_MAN command which produces
|
jpayne@68
|
970 xmlwf.1 rather than XMLWF.1; also covers case insensitive
|
jpayne@68
|
971 file systems
|
jpayne@68
|
972 #181 Autotools: Drop -rpath option passed to libtool
|
jpayne@68
|
973 #188 Autotools: Detect and deny SGML docbook2man as ours is XML
|
jpayne@68
|
974 #188 Autotools/CMake: Support command db2x_docbook2man as well
|
jpayne@68
|
975 #174 CMake: Introduce option WARNINGS_AS_ERRORS, defaults to OFF
|
jpayne@68
|
976 #184 #185 CMake: Introduce option MSVC_USE_STATIC_CRT, defaults to OFF
|
jpayne@68
|
977 #207 #208 CMake: Introduce option XML_UNICODE and XML_UNICODE_WCHAR_T,
|
jpayne@68
|
978 both defaulting to OFF
|
jpayne@68
|
979 #175 CMake: Prefer check_symbol_exists over check_function_exists
|
jpayne@68
|
980 #176 CMake: Create the same pkg-config file as with GNU Autotools
|
jpayne@68
|
981 #178 #179 CMake: Use GNUInstallDirs module to set proper defaults for
|
jpayne@68
|
982 install directories
|
jpayne@68
|
983 #208 CMake: Utilize expat_config.h.cmake for XML_DEV_URANDOM
|
jpayne@68
|
984 #180 Windows: Fix compilation of test suite for Visual Studio 2008
|
jpayne@68
|
985 #131 #173 #202 Address compiler warnings
|
jpayne@68
|
986 #187 #190 #200 Fix miscellaneous typos
|
jpayne@68
|
987 Version info bumped from 7:7:6 to 7:8:6
|
jpayne@68
|
988
|
jpayne@68
|
989 Special thanks to:
|
jpayne@68
|
990 Anton Maklakov
|
jpayne@68
|
991 Benjamin Peterson
|
jpayne@68
|
992 Brad King
|
jpayne@68
|
993 Franek Korta
|
jpayne@68
|
994 Frank Rast
|
jpayne@68
|
995 Joe Orton
|
jpayne@68
|
996 luzpaz
|
jpayne@68
|
997 Pedro Vicente
|
jpayne@68
|
998 Rainer Jung
|
jpayne@68
|
999 Rhodri James
|
jpayne@68
|
1000 Rolf Ade
|
jpayne@68
|
1001 Rolf Eike Beer
|
jpayne@68
|
1002 Thomas Beutlich
|
jpayne@68
|
1003 Tomasz Kłoczko
|
jpayne@68
|
1004
|
jpayne@68
|
1005 Release 2.2.5 Tue October 31 2017
|
jpayne@68
|
1006 Bug fixes:
|
jpayne@68
|
1007 #8 If the parser runs out of memory, make sure its internal
|
jpayne@68
|
1008 state reflects the memory it actually has, not the memory
|
jpayne@68
|
1009 it wanted to have.
|
jpayne@68
|
1010 #11 The default handler wasn't being called when it should for
|
jpayne@68
|
1011 a SYSTEM or PUBLIC doctype if an entity declaration handler
|
jpayne@68
|
1012 was registered.
|
jpayne@68
|
1013 #137 #138 Fix a case of mistakenly reported parsing success where
|
jpayne@68
|
1014 XML_StopParser was called from an element handler
|
jpayne@68
|
1015 #162 Function XML_ErrorString was returning NULL rather than
|
jpayne@68
|
1016 a message for code XML_ERROR_INVALID_ARGUMENT
|
jpayne@68
|
1017 introduced with release 2.2.1
|
jpayne@68
|
1018
|
jpayne@68
|
1019 Other changes:
|
jpayne@68
|
1020 #106 xmlwf: Add argument -N adding notation declarations
|
jpayne@68
|
1021 #75 #106 Test suite: Resolve expected failure cases where xmlwf
|
jpayne@68
|
1022 output was incomplete
|
jpayne@68
|
1023 #127 Windows: Fix test suite compilation
|
jpayne@68
|
1024 #126 #127 Windows: Fix compilation for Visual Studio 2012
|
jpayne@68
|
1025 Windows: Upgrade shipped project files to Visual Studio 2017
|
jpayne@68
|
1026 #33 #132 tests: Mass-fix compilation for XML_UNICODE_WCHAR_T
|
jpayne@68
|
1027 #129 examples: Fix compilation for XML_UNICODE_WCHAR_T
|
jpayne@68
|
1028 #130 benchmark: Fix compilation for XML_UNICODE_WCHAR_T
|
jpayne@68
|
1029 #144 xmlwf: Fix compilation for XML_UNICODE_WCHAR_T; still needs
|
jpayne@68
|
1030 Windows or MinGW for 2-byte wchar_t
|
jpayne@68
|
1031 #9 Address two Clang Static Analyzer false positives
|
jpayne@68
|
1032 #59 Resolve troublesome macros hiding parser struct membership
|
jpayne@68
|
1033 and dereferencing that pointer
|
jpayne@68
|
1034 #6 Resolve superfluous internal malloc/realloc switch
|
jpayne@68
|
1035 #153 #155 Improve docbook2x-man detection
|
jpayne@68
|
1036 #160 Undefine NDEBUG in the test suite (rather than rejecting it)
|
jpayne@68
|
1037 #161 Address compiler warnings
|
jpayne@68
|
1038 Version info bumped from 7:6:6 to 7:7:6
|
jpayne@68
|
1039
|
jpayne@68
|
1040 Special thanks to:
|
jpayne@68
|
1041 Benbuck Nason
|
jpayne@68
|
1042 Hans Wennborg
|
jpayne@68
|
1043 José Gutiérrez de la Concha
|
jpayne@68
|
1044 Pedro Monreal Gonzalez
|
jpayne@68
|
1045 Rhodri James
|
jpayne@68
|
1046 Rolf Ade
|
jpayne@68
|
1047 Stephen Groat
|
jpayne@68
|
1048 and
|
jpayne@68
|
1049 Core Infrastructure Initiative
|
jpayne@68
|
1050
|
jpayne@68
|
1051 Release 2.2.4 Sat August 19 2017
|
jpayne@68
|
1052 Bug fixes:
|
jpayne@68
|
1053 #115 Fix copying of partial characters for UTF-8 input
|
jpayne@68
|
1054
|
jpayne@68
|
1055 Other changes:
|
jpayne@68
|
1056 #109 Fix "make check" for non-x86 architectures that default
|
jpayne@68
|
1057 to unsigned type char (-128..127 rather than 0..255)
|
jpayne@68
|
1058 #109 coverage.sh: Cover -funsigned-char
|
jpayne@68
|
1059 Autotools: Introduce --without-xmlwf argument
|
jpayne@68
|
1060 #65 Autotools: Replace handwritten Makefile with GNU Automake
|
jpayne@68
|
1061 #43 CMake: Auto-detect high quality entropy extractors, add new
|
jpayne@68
|
1062 option USE_libbsd=ON to use arc4random_buf of libbsd
|
jpayne@68
|
1063 #74 CMake: Add -fno-strict-aliasing only where supported
|
jpayne@68
|
1064 #114 CMake: Always honor manually set BUILD_* options
|
jpayne@68
|
1065 #114 CMake: Compile man page if docbook2x-man is available, only
|
jpayne@68
|
1066 #117 Include file tests/xmltest.log.expected in source tarball
|
jpayne@68
|
1067 (required for "make run-xmltest")
|
jpayne@68
|
1068 #117 Include (existing) Visual Studio 2013 files in source tarball
|
jpayne@68
|
1069 Improve test suite error output
|
jpayne@68
|
1070 #111 Fix some typos in documentation
|
jpayne@68
|
1071 Version info bumped from 7:5:6 to 7:6:6
|
jpayne@68
|
1072
|
jpayne@68
|
1073 Special thanks to:
|
jpayne@68
|
1074 Jakub Wilk
|
jpayne@68
|
1075 Joe Orton
|
jpayne@68
|
1076 Lin Tian
|
jpayne@68
|
1077 Rolf Eike Beer
|
jpayne@68
|
1078
|
jpayne@68
|
1079 Release 2.2.3 Wed August 2 2017
|
jpayne@68
|
1080 Security fixes:
|
jpayne@68
|
1081 #82 CVE-2017-11742 -- Windows: Fix DLL hijacking vulnerability
|
jpayne@68
|
1082 using Steve Holme's LoadLibrary wrapper for/of cURL
|
jpayne@68
|
1083
|
jpayne@68
|
1084 Bug fixes:
|
jpayne@68
|
1085 #85 Fix a dangling pointer issue related to realloc
|
jpayne@68
|
1086
|
jpayne@68
|
1087 Other changes:
|
jpayne@68
|
1088 Increase code coverage
|
jpayne@68
|
1089 #91 Linux: Allow getrandom to fail if nonblocking pool has not
|
jpayne@68
|
1090 yet been initialized and read /dev/urandom then, instead.
|
jpayne@68
|
1091 This is in line with what recent Python does.
|
jpayne@68
|
1092 #81 Pre-10.7/Lion macOS: Support entropy from arc4random
|
jpayne@68
|
1093 #86 Check that a UTF-16 encoding in an XML declaration has the
|
jpayne@68
|
1094 right endianness
|
jpayne@68
|
1095 #4 #5 #7 Recover correctly when some reallocations fail
|
jpayne@68
|
1096 Repair "./configure && make" for systems without any
|
jpayne@68
|
1097 provider of high quality entropy
|
jpayne@68
|
1098 and try reading /dev/urandom on those
|
jpayne@68
|
1099 Ensure that user-defined character encodings have converter
|
jpayne@68
|
1100 functions when they are needed
|
jpayne@68
|
1101 Fix mis-leading description of argument -c in xmlwf.1
|
jpayne@68
|
1102 Rely on macro HAVE_ARC4RANDOM_BUF (rather than __CloudABI__)
|
jpayne@68
|
1103 for CloudABI
|
jpayne@68
|
1104 #100 Fix use of SIPHASH_MAIN in siphash.h
|
jpayne@68
|
1105 #23 Test suite: Fix memory leaks
|
jpayne@68
|
1106 Version info bumped from 7:4:6 to 7:5:6
|
jpayne@68
|
1107
|
jpayne@68
|
1108 Special thanks to:
|
jpayne@68
|
1109 Chanho Park
|
jpayne@68
|
1110 Joe Orton
|
jpayne@68
|
1111 Pascal Cuoq
|
jpayne@68
|
1112 Rhodri James
|
jpayne@68
|
1113 Simon McVittie
|
jpayne@68
|
1114 Vadim Zeitlin
|
jpayne@68
|
1115 Viktor Szakats
|
jpayne@68
|
1116 and
|
jpayne@68
|
1117 Core Infrastructure Initiative
|
jpayne@68
|
1118
|
jpayne@68
|
1119 Release 2.2.2 Wed July 12 2017
|
jpayne@68
|
1120 Security fixes:
|
jpayne@68
|
1121 #43 Protect against compilation without any source of high
|
jpayne@68
|
1122 quality entropy enabled, e.g. with CMake build system;
|
jpayne@68
|
1123 commit ff0207e6076e9828e536b8d9cd45c9c92069b895
|
jpayne@68
|
1124 #60 Windows with _UNICODE:
|
jpayne@68
|
1125 Unintended use of LoadLibraryW with a non-wide string
|
jpayne@68
|
1126 resulted in failure to load advapi32.dll and degradation
|
jpayne@68
|
1127 in quality of used entropy when compiled with _UNICODE for
|
jpayne@68
|
1128 Windows; you can launch existing binaries with
|
jpayne@68
|
1129 EXPAT_ENTROPY_DEBUG=1 in the environment to inspect the
|
jpayne@68
|
1130 quality of entropy used during runtime; commits
|
jpayne@68
|
1131 * 95b95032f907ef1cd17ee7a9a1768010a825d61d
|
jpayne@68
|
1132 * 73a5a2e9c081f49f2d775cf7ced864158b68dc80
|
jpayne@68
|
1133 [MOX-006] Fix non-NULL parser parameter validation in XML_Parse;
|
jpayne@68
|
1134 resulted in NULL dereference, previously;
|
jpayne@68
|
1135 commit ac256dafdffc9622ab0dc2c62fcecb0dfcfa71fe
|
jpayne@68
|
1136
|
jpayne@68
|
1137 Bug fixes:
|
jpayne@68
|
1138 #69 Fix improper use of unsigned long long integer literals
|
jpayne@68
|
1139
|
jpayne@68
|
1140 Other changes:
|
jpayne@68
|
1141 #73 Start requiring a C99 compiler
|
jpayne@68
|
1142 #49 Fix "==" Bashism in configure script
|
jpayne@68
|
1143 #50 Fix too eager getrandom detection for Debian GNU/kFreeBSD
|
jpayne@68
|
1144 #52 and macOS
|
jpayne@68
|
1145 #51 Address lack of stdint.h in Visual Studio 2003 to 2008
|
jpayne@68
|
1146 #58 Address compile warnings
|
jpayne@68
|
1147 #68 Fix "./buildconf.sh && ./configure" for some versions
|
jpayne@68
|
1148 of Dash for /bin/sh
|
jpayne@68
|
1149 #72 CMake: Ease use of Expat in context of a parent project
|
jpayne@68
|
1150 with multiple CMakeLists.txt files
|
jpayne@68
|
1151 #72 CMake: Resolve mistaken executable permissions
|
jpayne@68
|
1152 #76 Address compile warning with -DNDEBUG (not recommended!)
|
jpayne@68
|
1153 #77 Address compile warning about macro redefinition
|
jpayne@68
|
1154
|
jpayne@68
|
1155 Special thanks to:
|
jpayne@68
|
1156 Alexander Bluhm
|
jpayne@68
|
1157 Ben Boeckel
|
jpayne@68
|
1158 Cătălin Răceanu
|
jpayne@68
|
1159 Kerin Millar
|
jpayne@68
|
1160 László Böszörményi
|
jpayne@68
|
1161 S. P. Zeidler
|
jpayne@68
|
1162 Segev Finer
|
jpayne@68
|
1163 Václav Slavík
|
jpayne@68
|
1164 Victor Stinner
|
jpayne@68
|
1165 Viktor Szakats
|
jpayne@68
|
1166 and
|
jpayne@68
|
1167 Radically Open Security
|
jpayne@68
|
1168
|
jpayne@68
|
1169 Release 2.2.1 Sat June 17 2017
|
jpayne@68
|
1170 Security fixes:
|
jpayne@68
|
1171 CVE-2017-9233 -- External entity infinite loop DoS
|
jpayne@68
|
1172 Details: https://libexpat.github.io/doc/cve-2017-9233/
|
jpayne@68
|
1173 Commit c4bf96bb51dd2a1b0e185374362ee136fe2c9d7f
|
jpayne@68
|
1174 [MOX-002] CVE-2016-9063 -- Detect integer overflow; commit
|
jpayne@68
|
1175 d4f735b88d9932bd5039df2335eefdd0723dbe20
|
jpayne@68
|
1176 (Fixed version of existing downstream patches!)
|
jpayne@68
|
1177 (SF.net) #539 Fix regression from fix to CVE-2016-0718 cutting off
|
jpayne@68
|
1178 longer tag names; commits
|
jpayne@68
|
1179 * 896b6c1fd3b842f377d1b62135dccf0a579cf65d
|
jpayne@68
|
1180 * af507cef2c93cb8d40062a0abe43a4f4e9158fb2
|
jpayne@68
|
1181 #16 * 0dbbf43fdb20f593ddf4fa1ff67288000dd4a7fd
|
jpayne@68
|
1182 #25 More integer overflow detection (function poolGrow); commits
|
jpayne@68
|
1183 * 810b74e4703dcfdd8f404e3cb177d44684775143
|
jpayne@68
|
1184 * 44178553f3539ce69d34abee77a05e879a7982ac
|
jpayne@68
|
1185 [MOX-002] Detect overflow from len=INT_MAX call to XML_Parse; commits
|
jpayne@68
|
1186 * 4be2cb5afcc018d996f34bbbce6374b7befad47f
|
jpayne@68
|
1187 * 7e5b71b748491b6e459e5c9a1d090820f94544d8
|
jpayne@68
|
1188 [MOX-005] #30 Use high quality entropy for hash initialization:
|
jpayne@68
|
1189 * arc4random_buf on BSD, systems with libbsd
|
jpayne@68
|
1190 (when configured with --with-libbsd), CloudABI
|
jpayne@68
|
1191 * RtlGenRandom on Windows XP / Server 2003 and later
|
jpayne@68
|
1192 * getrandom on Linux 3.17+
|
jpayne@68
|
1193 In a way, that's still part of CVE-2016-5300.
|
jpayne@68
|
1194 https://github.com/libexpat/libexpat/pull/30/commits
|
jpayne@68
|
1195 [MOX-005] For the low quality entropy extraction fallback code,
|
jpayne@68
|
1196 the parser instance address can no longer leak, commit
|
jpayne@68
|
1197 04ad658bd3079dd15cb60fc67087900f0ff4b083
|
jpayne@68
|
1198 [MOX-003] Prevent use of uninitialised variable; commit
|
jpayne@68
|
1199 [MOX-004] a4dc944f37b664a3ca7199c624a98ee37babdb4b
|
jpayne@68
|
1200 Add missing parameter validation to public API functions
|
jpayne@68
|
1201 and dedicated error code XML_ERROR_INVALID_ARGUMENT:
|
jpayne@68
|
1202 [MOX-006] * NULL checks; commits
|
jpayne@68
|
1203 * d37f74b2b7149a3a95a680c4c4cd2a451a51d60a (merge/many)
|
jpayne@68
|
1204 * 9ed727064b675b7180c98cb3d4f75efba6966681
|
jpayne@68
|
1205 * 6a747c837c50114dfa413994e07c0ba477be4534
|
jpayne@68
|
1206 * Negative length (XML_Parse); commit
|
jpayne@68
|
1207 [MOX-002] 70db8d2538a10f4c022655d6895e4c3e78692e7f
|
jpayne@68
|
1208 [MOX-001] #35 Change hash algorithm to William Ahern's version of SipHash
|
jpayne@68
|
1209 to go further with fixing CVE-2012-0876.
|
jpayne@68
|
1210 https://github.com/libexpat/libexpat/pull/39/commits
|
jpayne@68
|
1211
|
jpayne@68
|
1212 Bug fixes:
|
jpayne@68
|
1213 #32 Fix sharing of hash salt across parsers;
|
jpayne@68
|
1214 relevant where XML_ExternalEntityParserCreate is called
|
jpayne@68
|
1215 prior to XML_Parse, in particular (e.g. FBReader)
|
jpayne@68
|
1216 #28 xmlwf: Auto-disable use of memory-mapping (and parsing
|
jpayne@68
|
1217 as a single chunk) for files larger than ~1 GB (2^30 bytes)
|
jpayne@68
|
1218 rather than failing with error "out of memory"
|
jpayne@68
|
1219 #3 Fix double free after malloc failure in DTD code; commit
|
jpayne@68
|
1220 7ae9c3d3af433cd4defe95234eae7dc8ed15637f
|
jpayne@68
|
1221 #17 Fix memory leak on parser error for unbound XML attribute
|
jpayne@68
|
1222 prefix with new namespaces defined in the same tag;
|
jpayne@68
|
1223 found by Google's OSS-Fuzz; commits
|
jpayne@68
|
1224 * 16f87daae5a16132e479e4f71862128c7a915c73
|
jpayne@68
|
1225 * b47dbc9745932c160893d433220e462bd605f8cd
|
jpayne@68
|
1226 xmlwf on Windows: Add missing calls to CloseHandle
|
jpayne@68
|
1227
|
jpayne@68
|
1228 New features:
|
jpayne@68
|
1229 #30 Introduced environment switch EXPAT_ENTROPY_DEBUG=1
|
jpayne@68
|
1230 for runtime debugging of entropy extraction
|
jpayne@68
|
1231
|
jpayne@68
|
1232 Other changes:
|
jpayne@68
|
1233 Increase code coverage
|
jpayne@68
|
1234 #33 Reject use of XML_UNICODE_WCHAR_T with sizeof(wchar_t) != 2;
|
jpayne@68
|
1235 XML_UNICODE_WCHAR_T was never meant to be used outside
|
jpayne@68
|
1236 of Windows; 4-byte wchar_t is common on Linux
|
jpayne@68
|
1237 (SF.net) #538 Start using -fno-strict-aliasing
|
jpayne@68
|
1238 (SF.net) #540 Support compilation against cloudlibc of CloudABI
|
jpayne@68
|
1239 Allow MinGW cross-compilation
|
jpayne@68
|
1240 (SF.net) #534 CMake: Introduce option "BUILD_doc" (enabled by default)
|
jpayne@68
|
1241 to bypass compilation of the xmlwf.1 man page
|
jpayne@68
|
1242 (SF.net) pr2 CMake: Introduce option "INSTALL" (enabled by default)
|
jpayne@68
|
1243 to bypass installation of expat files
|
jpayne@68
|
1244 CMake: Fix ninja support
|
jpayne@68
|
1245 Autotools: Add parameters --enable-xml-context [COUNT]
|
jpayne@68
|
1246 and --disable-xml-context; default of context of 1024
|
jpayne@68
|
1247 bytes enabled unchanged
|
jpayne@68
|
1248 #14 Drop AmigaOS 4.x code and includes
|
jpayne@68
|
1249 #14 Drop ancient build systems:
|
jpayne@68
|
1250 * Borland C++ Builder
|
jpayne@68
|
1251 * OpenVMS
|
jpayne@68
|
1252 * Open Watcom
|
jpayne@68
|
1253 * Visual Studio 6.0
|
jpayne@68
|
1254 * Pre-X Mac OS (MPW Makefile)
|
jpayne@68
|
1255 If you happen to rely on some of these, please get in
|
jpayne@68
|
1256 touch for joining with maintenance.
|
jpayne@68
|
1257 #10 Move from WIN32 to _WIN32
|
jpayne@68
|
1258 #13 Fix "make run-xmltest" order instability
|
jpayne@68
|
1259 Address compile warnings
|
jpayne@68
|
1260 Bump version info from 7:2:6 to 7:3:6
|
jpayne@68
|
1261 Add AUTHORS file
|
jpayne@68
|
1262
|
jpayne@68
|
1263 Infrastructure:
|
jpayne@68
|
1264 #1 Migrate from SourceForge to GitHub (except downloads):
|
jpayne@68
|
1265 https://github.com/libexpat/
|
jpayne@68
|
1266 #1 Re-create http://libexpat.org/ project website
|
jpayne@68
|
1267 Start utilizing Travis CI
|
jpayne@68
|
1268
|
jpayne@68
|
1269 Special thanks to:
|
jpayne@68
|
1270 Andy Wang
|
jpayne@68
|
1271 Don Lewis
|
jpayne@68
|
1272 Ed Schouten
|
jpayne@68
|
1273 Karl Waclawek
|
jpayne@68
|
1274 Pascal Cuoq
|
jpayne@68
|
1275 Rhodri James
|
jpayne@68
|
1276 Sergei Nikulov
|
jpayne@68
|
1277 Tobias Taschner
|
jpayne@68
|
1278 Viktor Szakats
|
jpayne@68
|
1279 and
|
jpayne@68
|
1280 Core Infrastructure Initiative
|
jpayne@68
|
1281 Mozilla Foundation (MOSS Track 3: Secure Open Source)
|
jpayne@68
|
1282 Radically Open Security
|
jpayne@68
|
1283
|
jpayne@68
|
1284 Release 2.2.0 Tue June 21 2016
|
jpayne@68
|
1285 Security fixes:
|
jpayne@68
|
1286 #537 CVE-2016-0718 -- Fix crash on malformed input
|
jpayne@68
|
1287 CVE-2016-4472 -- Improve insufficient fix to CVE-2015-1283 /
|
jpayne@68
|
1288 CVE-2015-2716 introduced with Expat 2.1.1
|
jpayne@68
|
1289 #499 CVE-2016-5300 -- Use more entropy for hash initialization
|
jpayne@68
|
1290 than the original fix to CVE-2012-0876
|
jpayne@68
|
1291 #519 CVE-2012-6702 -- Resolve troublesome internal call to srand
|
jpayne@68
|
1292 that was introduced with Expat 2.1.0
|
jpayne@68
|
1293 when addressing CVE-2012-0876 (issue #496)
|
jpayne@68
|
1294
|
jpayne@68
|
1295 Bug fixes:
|
jpayne@68
|
1296 Fix uninitialized reads of size 1
|
jpayne@68
|
1297 (e.g. in little2_updatePosition)
|
jpayne@68
|
1298 Fix detection of UTF-8 character boundaries
|
jpayne@68
|
1299
|
jpayne@68
|
1300 Other changes:
|
jpayne@68
|
1301 #532 Fix compilation for Visual Studio 2010 (keyword "C99")
|
jpayne@68
|
1302 Autotools: Resolve use of "$<" to better support bmake
|
jpayne@68
|
1303 Autotools: Add QA script "qa.sh" (and make target "qa")
|
jpayne@68
|
1304 Autotools: Respect CXXFLAGS if given
|
jpayne@68
|
1305 Autotools: Fix "make run-xmltest"
|
jpayne@68
|
1306 Autotools: Have "make run-xmltest" check for expected output
|
jpayne@68
|
1307 p90 CMake: Fix static build (BUILD_shared=OFF) on Windows
|
jpayne@68
|
1308 #536 CMake: Add soversion, support -DNO_SONAME=yes to bypass
|
jpayne@68
|
1309 #323 CMake: Add suffix "d" to differentiate debug from release
|
jpayne@68
|
1310 CMake: Define WIN32 with CMake on Windows
|
jpayne@68
|
1311 Annotate memory allocators for GCC
|
jpayne@68
|
1312 Address all currently known compile warnings
|
jpayne@68
|
1313 Make sure that API symbols remain visible despite
|
jpayne@68
|
1314 -fvisibility=hidden
|
jpayne@68
|
1315 Remove executable flag from source files
|
jpayne@68
|
1316 Resolve COMPILED_FROM_DSP in favor of WIN32
|
jpayne@68
|
1317
|
jpayne@68
|
1318 Special thanks to:
|
jpayne@68
|
1319 Björn Lindahl
|
jpayne@68
|
1320 Christian Heimes
|
jpayne@68
|
1321 Cristian Rodríguez
|
jpayne@68
|
1322 Daniel Krügler
|
jpayne@68
|
1323 Gustavo Grieco
|
jpayne@68
|
1324 Karl Waclawek
|
jpayne@68
|
1325 László Böszörményi
|
jpayne@68
|
1326 Marco Grassi
|
jpayne@68
|
1327 Pascal Cuoq
|
jpayne@68
|
1328 Sergei Nikulov
|
jpayne@68
|
1329 Thomas Beutlich
|
jpayne@68
|
1330 Warren Young
|
jpayne@68
|
1331 Yann Droneaud
|
jpayne@68
|
1332
|
jpayne@68
|
1333 Release 2.1.1 Sat March 12 2016
|
jpayne@68
|
1334 Security fixes:
|
jpayne@68
|
1335 #582: CVE-2015-1283 - Multiple integer overflows in XML_GetBuffer
|
jpayne@68
|
1336
|
jpayne@68
|
1337 Bug fixes:
|
jpayne@68
|
1338 #502: Fix potential null pointer dereference
|
jpayne@68
|
1339 #520: Symbol XML_SetHashSalt was not exported
|
jpayne@68
|
1340 Output of "xmlwf -h" was incomplete
|
jpayne@68
|
1341
|
jpayne@68
|
1342 Other changes:
|
jpayne@68
|
1343 #503: Document behavior of calling XML_SetHashSalt with salt 0
|
jpayne@68
|
1344 Minor improvements to man page xmlwf(1)
|
jpayne@68
|
1345 Improvements to the experimental CMake build system
|
jpayne@68
|
1346 libtool now invoked with --verbose
|
jpayne@68
|
1347
|
jpayne@68
|
1348 Release 2.1.0 Sat March 24 2012
|
jpayne@68
|
1349 - Security fixes:
|
jpayne@68
|
1350 #2958794: CVE-2012-1148 - Memory leak in poolGrow.
|
jpayne@68
|
1351 #2895533: CVE-2012-1147 - Resource leak in readfilemap.c.
|
jpayne@68
|
1352 #3496608: CVE-2012-0876 - Hash DOS attack.
|
jpayne@68
|
1353 #2894085: CVE-2009-3560 - Buffer over-read and crash in big2_toUtf8().
|
jpayne@68
|
1354 #1990430: CVE-2009-3720 - Parser crash with special UTF-8 sequences.
|
jpayne@68
|
1355 - Bug Fixes:
|
jpayne@68
|
1356 #1742315: Harmful XML_ParserCreateNS suggestion.
|
jpayne@68
|
1357 #1785430: Expat build fails on linux-amd64 with gcc version>=4.1 -O3.
|
jpayne@68
|
1358 #1983953, 2517952, 2517962, 2649838:
|
jpayne@68
|
1359 Build modifications using autoreconf instead of buildconf.sh.
|
jpayne@68
|
1360 #2815947, #2884086: OBJEXT and EXEEXT support while building.
|
jpayne@68
|
1361 #2517938: xmlwf should return non-zero exit status if not well-formed.
|
jpayne@68
|
1362 #2517946: Wrong statement about XMLDecl in xmlwf.1 and xmlwf.sgml.
|
jpayne@68
|
1363 #2855609: Dangling positionPtr after error.
|
jpayne@68
|
1364 #2990652: CMake support.
|
jpayne@68
|
1365 #3010819: UNEXPECTED_STATE with a trailing "%" in entity value.
|
jpayne@68
|
1366 #3206497: Uninitialized memory returned from XML_Parse.
|
jpayne@68
|
1367 #3287849: make check fails on mingw-w64.
|
jpayne@68
|
1368 - Patches:
|
jpayne@68
|
1369 #1749198: pkg-config support.
|
jpayne@68
|
1370 #3010222: Fix for bug #3010819.
|
jpayne@68
|
1371 #3312568: CMake support.
|
jpayne@68
|
1372 #3446384: Report byte offsets for attr names and values.
|
jpayne@68
|
1373 - New Features / API changes:
|
jpayne@68
|
1374 Added new API member XML_SetHashSalt() that allows setting an initial
|
jpayne@68
|
1375 value (salt) for hash calculations. This is part of the fix for
|
jpayne@68
|
1376 bug #3496608 to randomize hash parameters.
|
jpayne@68
|
1377 When compiled with XML_ATTR_INFO defined, adds new API member
|
jpayne@68
|
1378 XML_GetAttributeInfo() that allows retrieving the byte
|
jpayne@68
|
1379 offsets for attribute names and values (patch #3446384).
|
jpayne@68
|
1380 Added CMake build system.
|
jpayne@68
|
1381 See bug #2990652 and patch #3312568.
|
jpayne@68
|
1382 Added run-benchmark target to Makefile.in - relies on testdata module
|
jpayne@68
|
1383 present in the same relative location as in the repository.
|
jpayne@68
|
1384
|
jpayne@68
|
1385 Release 2.0.1 Tue June 5 2007
|
jpayne@68
|
1386 - Fixed bugs #1515266, #1515600: The character data handler's calling
|
jpayne@68
|
1387 of XML_StopParser() was not handled properly; if the parser was
|
jpayne@68
|
1388 stopped and the handler set to NULL, the parser would segfault.
|
jpayne@68
|
1389 - Fixed bug #1690883: Expat failed on EBCDIC systems as it assumed
|
jpayne@68
|
1390 some character constants to be ASCII encoded.
|
jpayne@68
|
1391 - Minor cleanups of the test harness.
|
jpayne@68
|
1392 - Fixed xmlwf bug #1513566: "out of memory" error on file size zero.
|
jpayne@68
|
1393 - Fixed outline.c bug #1543233: missing a final XML_ParserFree() call.
|
jpayne@68
|
1394 - Fixes and improvements for Windows platform:
|
jpayne@68
|
1395 bugs #1409451, #1476160, #1548182, #1602769, #1717322.
|
jpayne@68
|
1396 - Build fixes for various platforms:
|
jpayne@68
|
1397 HP-UX, Tru64, Solaris 9: patch #1437840, bug #1196180.
|
jpayne@68
|
1398 All Unix: #1554618 (refreshed config.sub/config.guess).
|
jpayne@68
|
1399 #1490371, #1613457: support both, DESTDIR and INSTALL_ROOT,
|
jpayne@68
|
1400 without relying on GNU-Make specific features.
|
jpayne@68
|
1401 #1647805: Patched configure.in to work better with Intel compiler.
|
jpayne@68
|
1402 - Fixes to Makefile.in to have make check work correctly:
|
jpayne@68
|
1403 bugs #1408143, #1535603, #1536684.
|
jpayne@68
|
1404 - Added Open Watcom support: patch #1523242.
|
jpayne@68
|
1405
|
jpayne@68
|
1406 Release 2.0.0 Wed Jan 11 2006
|
jpayne@68
|
1407 - We no longer use the "check" library for C unit testing; we
|
jpayne@68
|
1408 always use the (partial) internal implementation of the API.
|
jpayne@68
|
1409 - Report XML_NS setting via XML_GetFeatureList().
|
jpayne@68
|
1410 - Fixed headers for use from C++.
|
jpayne@68
|
1411 - XML_GetCurrentLineNumber() and XML_GetCurrentColumnNumber()
|
jpayne@68
|
1412 now return unsigned integers.
|
jpayne@68
|
1413 - Added XML_LARGE_SIZE switch to enable 64-bit integers for
|
jpayne@68
|
1414 byte indexes and line/column numbers.
|
jpayne@68
|
1415 - Updated to use libtool 1.5.22 (the most recent).
|
jpayne@68
|
1416 - Added support for AmigaOS.
|
jpayne@68
|
1417 - Some mostly minor bug fixes. SF issues include: #1006708,
|
jpayne@68
|
1418 #1021776, #1023646, #1114960, #1156398, #1221160, #1271642.
|
jpayne@68
|
1419
|
jpayne@68
|
1420 Release 1.95.8 Fri Jul 23 2004
|
jpayne@68
|
1421 - Major new feature: suspend/resume. Handlers can now request
|
jpayne@68
|
1422 that a parse be suspended for later resumption or aborted
|
jpayne@68
|
1423 altogether. See "Temporarily Stopping Parsing" in the
|
jpayne@68
|
1424 documentation for more details.
|
jpayne@68
|
1425 - Some mostly minor bug fixes, but compilation should no
|
jpayne@68
|
1426 longer generate warnings on most platforms. SF issues
|
jpayne@68
|
1427 include: #827319, #840173, #846309, #888329, #896188, #923913,
|
jpayne@68
|
1428 #928113, #961698, #985192.
|
jpayne@68
|
1429
|
jpayne@68
|
1430 Release 1.95.7 Mon Oct 20 2003
|
jpayne@68
|
1431 - Fixed enum XML_Status issue (reported on SourceForge many
|
jpayne@68
|
1432 times), so compilers that are properly picky will be happy.
|
jpayne@68
|
1433 - Introduced an XMLCALL macro to control the calling
|
jpayne@68
|
1434 convention used by the Expat API; this macro should be used
|
jpayne@68
|
1435 to annotate prototypes and definitions of callback
|
jpayne@68
|
1436 implementations in code compiled with a calling convention
|
jpayne@68
|
1437 other than the default convention for the host platform.
|
jpayne@68
|
1438 - Improved ability to build without the configure-generated
|
jpayne@68
|
1439 expat_config.h header. This is useful for applications
|
jpayne@68
|
1440 which embed Expat rather than linking in the library.
|
jpayne@68
|
1441 - Fixed a variety of bugs: see SF issues #458907, #609603,
|
jpayne@68
|
1442 #676844, #679754, #692878, #692964, #695401, #699323, #699487,
|
jpayne@68
|
1443 #820946.
|
jpayne@68
|
1444 - Improved hash table lookups.
|
jpayne@68
|
1445 - Added more regression tests and improved documentation.
|
jpayne@68
|
1446
|
jpayne@68
|
1447 Release 1.95.6 Tue Jan 28 2003
|
jpayne@68
|
1448 - Added XML_FreeContentModel().
|
jpayne@68
|
1449 - Added XML_MemMalloc(), XML_MemRealloc(), XML_MemFree().
|
jpayne@68
|
1450 - Fixed a variety of bugs: see SF issues #615606, #616863,
|
jpayne@68
|
1451 #618199, #653180, #673791.
|
jpayne@68
|
1452 - Enhanced the regression test suite.
|
jpayne@68
|
1453 - Man page improvements: includes SF issue #632146.
|
jpayne@68
|
1454
|
jpayne@68
|
1455 Release 1.95.5 Fri Sep 6 2002
|
jpayne@68
|
1456 - Added XML_UseForeignDTD() for improved SAX2 support.
|
jpayne@68
|
1457 - Added XML_GetFeatureList().
|
jpayne@68
|
1458 - Defined XML_Bool type and the values XML_TRUE and XML_FALSE.
|
jpayne@68
|
1459 - Use an incomplete struct instead of a void* for the parser
|
jpayne@68
|
1460 (may not retain).
|
jpayne@68
|
1461 - Fixed UTF-8 decoding bug that caused legal UTF-8 to be rejected.
|
jpayne@68
|
1462 - Finally fixed bug where default handler would report DTD
|
jpayne@68
|
1463 events that were already handled by another handler.
|
jpayne@68
|
1464 Initial patch contributed by Darryl Miles.
|
jpayne@68
|
1465 - Removed unnecessary DllMain() function that caused static
|
jpayne@68
|
1466 linking into a DLL to be difficult.
|
jpayne@68
|
1467 - Added VC++ projects for building static libraries.
|
jpayne@68
|
1468 - Reduced line-length for all source code and headers to be
|
jpayne@68
|
1469 no longer than 80 characters, to help with AS/400 support.
|
jpayne@68
|
1470 - Reduced memory copying during parsing (SF patch #600964).
|
jpayne@68
|
1471 - Fixed a variety of bugs: see SF issues #580793, #434664,
|
jpayne@68
|
1472 #483514, #580503, #581069, #584041, #584183, #584832, #585537,
|
jpayne@68
|
1473 #596555, #596678, #598352, #598944, #599715, #600479, #600971.
|
jpayne@68
|
1474
|
jpayne@68
|
1475 Release 1.95.4 Fri Jul 12 2002
|
jpayne@68
|
1476 - Added support for VMS, contributed by Craig Berry. See
|
jpayne@68
|
1477 vms/README.vms for more information.
|
jpayne@68
|
1478 - Added Mac OS (classic) support, with a makefile for MPW,
|
jpayne@68
|
1479 contributed by Thomas Wegner and Daryle Walker.
|
jpayne@68
|
1480 - Added Borland C++ Builder 5 / BCC 5.5 support, contributed
|
jpayne@68
|
1481 by Patrick McConnell (SF patch #538032).
|
jpayne@68
|
1482 - Fixed a variety of bugs: see SF issues #441449, #563184,
|
jpayne@68
|
1483 #564342, #566334, #566901, #569461, #570263, #575168, #579196.
|
jpayne@68
|
1484 - Made skippedEntityHandler conform to SAX2 (see source comment)
|
jpayne@68
|
1485 - Re-implemented WFC: Entity Declared from XML 1.0 spec and
|
jpayne@68
|
1486 added a new error "entity declared in parameter entity":
|
jpayne@68
|
1487 see SF bug report #569461 and SF patch #578161
|
jpayne@68
|
1488 - Re-implemented section 5.1 from XML 1.0 spec:
|
jpayne@68
|
1489 see SF bug report #570263 and SF patch #578161
|
jpayne@68
|
1490
|
jpayne@68
|
1491 Release 1.95.3 Mon Jun 3 2002
|
jpayne@68
|
1492 - Added a project to the MSVC workspace to create a wchar_t
|
jpayne@68
|
1493 version of the library; the DLLs are named libexpatw.dll.
|
jpayne@68
|
1494 - Changed the name of the Windows DLLs from expat.dll to
|
jpayne@68
|
1495 libexpat.dll; this fixes SF bug #432456.
|
jpayne@68
|
1496 - Added the XML_ParserReset() API function.
|
jpayne@68
|
1497 - Fixed XML_SetReturnNSTriplet() to work for element names.
|
jpayne@68
|
1498 - Made the XML_UNICODE builds usable (thanks, Karl!).
|
jpayne@68
|
1499 - Allow xmlwf to read from standard input.
|
jpayne@68
|
1500 - Install a man page for xmlwf on Unix systems.
|
jpayne@68
|
1501 - Fixed many bugs; see SF bug reports #231864, #461380, #464837,
|
jpayne@68
|
1502 #466885, #469226, #477667, #484419, #487840, #494749, #496505,
|
jpayne@68
|
1503 #547350. Other bugs which we can't test as easily may also
|
jpayne@68
|
1504 have been fixed, especially in the area of build support.
|
jpayne@68
|
1505
|
jpayne@68
|
1506 Release 1.95.2 Fri Jul 27 2001
|
jpayne@68
|
1507 - More changes to make MSVC happy with the build; add a single
|
jpayne@68
|
1508 workspace to support both the library and xmlwf application.
|
jpayne@68
|
1509 - Added a Windows installer for Windows users; includes
|
jpayne@68
|
1510 xmlwf.exe.
|
jpayne@68
|
1511 - Added compile-time constants that can be used to determine the
|
jpayne@68
|
1512 Expat version
|
jpayne@68
|
1513 - Removed a lot of GNU-specific dependencies to aide portability
|
jpayne@68
|
1514 among the various Unix flavors.
|
jpayne@68
|
1515 - Fix the UTF-8 BOM bug.
|
jpayne@68
|
1516 - Cleaned up warning messages for several compilers.
|
jpayne@68
|
1517 - Added the -Wall, -Wstrict-prototypes options for GCC.
|
jpayne@68
|
1518
|
jpayne@68
|
1519 Release 1.95.1 Sun Oct 22 15:11:36 EDT 2000
|
jpayne@68
|
1520 - Changes to get expat to build under Microsoft compiler
|
jpayne@68
|
1521 - Removed all aborts and instead return an UNEXPECTED_STATE error.
|
jpayne@68
|
1522 - Fixed a bug where a stray '%' in an entity value would cause an
|
jpayne@68
|
1523 abort.
|
jpayne@68
|
1524 - Defined XML_SetEndNamespaceDeclHandler. Thanks to Darryl Miles for
|
jpayne@68
|
1525 finding this oversight.
|
jpayne@68
|
1526 - Changed default patterns in lib/Makefile.in to fit non-GNU makes
|
jpayne@68
|
1527 Thanks to robin@unrated.net for reporting and providing an
|
jpayne@68
|
1528 account to test on.
|
jpayne@68
|
1529 - The reference had the wrong label for XML_SetStartNamespaceDecl.
|
jpayne@68
|
1530 Reported by an anonymous user.
|
jpayne@68
|
1531
|
jpayne@68
|
1532 Release 1.95.0 Fri Sep 29 2000
|
jpayne@68
|
1533 - XML_ParserCreate_MM
|
jpayne@68
|
1534 Allows you to set a memory management suite to replace the
|
jpayne@68
|
1535 standard malloc,realloc, and free.
|
jpayne@68
|
1536 - XML_SetReturnNSTriplet
|
jpayne@68
|
1537 If you turn this feature on when namespace processing is in
|
jpayne@68
|
1538 effect, then qualified, prefixed element and attribute names
|
jpayne@68
|
1539 are returned as "uri|name|prefix" where '|' is whatever
|
jpayne@68
|
1540 separator character is used in namespace processing.
|
jpayne@68
|
1541 - Merged in features from perl-expat
|
jpayne@68
|
1542 o XML_SetElementDeclHandler
|
jpayne@68
|
1543 o XML_SetAttlistDeclHandler
|
jpayne@68
|
1544 o XML_SetXmlDeclHandler
|
jpayne@68
|
1545 o XML_SetEntityDeclHandler
|
jpayne@68
|
1546 o StartDoctypeDeclHandler takes 3 additional parameters:
|
jpayne@68
|
1547 sysid, pubid, has_internal_subset
|
jpayne@68
|
1548 o Many paired handler setters (like XML_SetElementHandler)
|
jpayne@68
|
1549 now have corresponding individual handler setters
|
jpayne@68
|
1550 o XML_GetInputContext for getting the input context of
|
jpayne@68
|
1551 the current parse position.
|
jpayne@68
|
1552 - Added reference material
|
jpayne@68
|
1553 - Packaged into a distribution that builds a sharable library
|