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