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