@cpp.js/package-expat 1.1.0 → 2.0.0-beta.2

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