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