Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: NetBSD/src
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: trunk
Choose a base ref
...
head repository: NetBSD/src
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: expat
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 10 commits
  • 266 files changed
  • 6 contributors

Commits on Feb 11, 2012

  1. Initial import of "expat" 2.0.1 into base:

    This is James Clark's expat XML parser library in C. It is a stream
    oriented parser that requires setting handlers to deal with the
    structure that the parser discovers in the document.
    
    This is the first part of the fix for PR lib/40346.
    tron authored and tron committed Feb 11, 2012
    Configuration menu
    Copy the full SHA
    938c2e0 View commit details
    Browse the repository at this point in the history

Commits on Apr 6, 2012

  1. import of expat 2.1.0

    Fixes CVE-2012-1147, CVE-2012-1148 and CVE-2012-0876 (other security
    issues have been previously fixed in our tree)
    
    relevant Changes:
    Release 2.1.0 Sat March 24 2012
            - Bug Fixes:
              #1742315: Harmful XML_ParserCreateNS suggestion.
              #2895533: CVE-2012-1147 - Resource leak in readfilemap.c.
              #1785430: Expat build fails on linux-amd64 with gcc version>=4.1 -O3.
              #1983953, 2517952, 2517962, 2649838:
                    Build modifications using autoreconf instead of buildconf.sh.
              #2815947, #2884086: OBJEXT and EXEEXT support while building.
              #1990430: CVE-2009-3720 - Parser crash with special UTF-8 sequences.
              #2517938: xmlwf should return non-zero exit status if not well-formed.
              #2517946: Wrong statement about XMLDecl in xmlwf.1 and xmlwf.sgml.
              #2855609: Dangling positionPtr after error.
              #2894085: CVE-2009-3560 - Buffer over-read and crash in big2_toUtf8().
              #2958794: CVE-2012-1148 - Memory leak in poolGrow.
              #2990652: CMake support.
              #3010819: UNEXPECTED_STATE with a trailing "%" in entity value.
              #3206497: Unitialized memory returned from XML_Parse.
              #3287849: make check fails on mingw-w64.
              #3496608: CVE-2012-0876 - Hash DOS attack.
            - Patches:
              #1749198: pkg-config support.
              #3010222: Fix for bug #3010819.
              #3312568: CMake support.
              #3446384: Report byte offsets for attr names and values.
            - New Features / API changes:
              Added new API member XML_SetHashSalt() that allows setting an intial
                    value (salt) for hash calculations. This is part of the fix for
                    bug #3496608 to randomize hash parameters.
              When compiled with XML_ATTR_INFO defined, adds new API member
                    XML_GetAttributeInfo() that allows retrieving the byte
                    offsets for attribute names and values (patch #3446384).
              Added CMake build system.
                    See bug #2990652 and patch #3312568.
              Added run-benchmark target to Makefile.in - relies on testdata module
                    present in the same relative location as in the repository.
    spzeidler committed Apr 6, 2012
    Configuration menu
    Copy the full SHA
    654cfe8 View commit details
    Browse the repository at this point in the history

Commits on May 14, 2016

  1. Import of a new expat version. Upstream Changes:

    Release 2.1.1 Sat March 12 2016
            Security fixes:
                #582: CVE-2015-1283 - Multiple integer overflows in XML_GetBuffer
    
            Bug fixes:
                #502: Fix potential null pointer dereference
                #520: Symbol XML_SetHashSalt was not exported
                Output of "xmlwf -h" was incomplete
    
            Other changes
                #503: Document behavior of calling XML_SetHashSalt with salt 0
                Minor improvements to man page xmlwf(1)
                Improvements to the experimental CMake build system
                libtool now invoked with --verbose
    spzeidler committed May 14, 2016
    Configuration menu
    Copy the full SHA
    430c7c6 View commit details
    Browse the repository at this point in the history

Commits on Feb 4, 2017

  1. from Changes:

        Release 2.2.0 Tue June 21 2016
            Security fixes:
                #537  CVE-2016-0718 -- Fix crash on malformed input
                      CVE-2016-4472 -- Improve insufficient fix to CVE-2015-1283 /
                                       CVE-2015-2716 introduced with Expat 2.1.1
                #499  CVE-2016-5300 -- Use more entropy for hash initialization
                                       than the original fix to CVE-2012-0876
                #519  CVE-2012-6702 -- Resolve troublesome internal call to srand
                                       that was introduced with Expat 2.1.0
                                       when addressing CVE-2012-0876 (issue #496)
    
            Bug fixes:
                      Fix uninitialized reads of size 1
                        (e.g. in little2_updatePosition)
                      Fix detection of UTF-8 character boundaries
    
            Other changes:
                #532  Fix compilation for Visual Studio 2010 (keyword "C99")
                      Autotools: Resolve use of "$<" to better support bmake
                      Autotools: Add QA script "qa.sh" (and make target "qa")
                      Autotools: Respect CXXFLAGS if given
                      Autotools: Fix "make run-xmltest"
                      Autotools: Have "make run-xmltest" check for expected output
                 p90  CMake: Fix static build (BUILD_shared=OFF) on Windows
                #536  CMake: Add soversion, support -DNO_SONAME=yes to bypass
                #323  CMake: Add suffix "d" to differentiate debug from release
                      CMake: Define WIN32 with CMake on Windows
                      Annotate memory allocators for GCC
                      Address all currently known compile warnings
                      Make sure that API symbols remain visible despite
                        -fvisibility=hidden
                      Remove executable flag from source files
                      Resolve COMPILED_FROM_DSP in favor of WIN32
    spzeidler committed Feb 4, 2017
    Configuration menu
    Copy the full SHA
    f6fad8c View commit details
    Browse the repository at this point in the history

Commits on Jun 17, 2017

  1. Release 2.2.1 Sat June 17 2017

            Security fixes:
                      CVE-2017-9233 -- External entity infinite loop DoS
                        Details: https://libexpat.github.io/doc/cve-2017-9233/
                        Commit c4bf96bb51dd2a1b0e185374362ee136fe2c9d7f
       [MOX-002]      CVE-2016-9063 -- Detect integer overflow; commit
                        d4f735b88d9932bd5039df2335eefdd0723dbe20
                        (Fixed version of existing downstream patches!)
       (SF.net) #539  Fix regression from fix to CVE-2016-0718 cutting off
                        longer tag names; commits
                        * 896b6c1fd3b842f377d1b62135dccf0a579cf65d
                        * af507cef2c93cb8d40062a0abe43a4f4e9158fb2
                 #16    * 0dbbf43fdb20f593ddf4fa1ff67288000dd4a7fd
                 #25  More integer overflow detection (function poolGrow); commits
                        * 810b74e4703dcfdd8f404e3cb177d44684775143
                        * 44178553f3539ce69d34abee77a05e879a7982ac
       [MOX-002]      Detect overflow from len=INT_MAX call to XML_Parse; commits
                        * 4be2cb5afcc018d996f34bbbce6374b7befad47f
                        * 7e5b71b748491b6e459e5c9a1d090820f94544d8
       [MOX-005] #30  Use high quality entropy for hash initialization:
                        * arc4random_buf on BSD, systems with libbsd
                          (when configured with --with-libbsd), CloudABI
                        * RtlGenRandom on Windows XP / Server 2003 and later
                        * getrandom on Linux 3.17+
                        In a way, that's still part of CVE-2016-5300.
                        https://github.com/libexpat/libexpat/pull/30/commits
       [MOX-005]      For the low quality entropy extraction fallback code,
                        the parser instance address can no longer leak, commit
                        04ad658bd3079dd15cb60fc67087900f0ff4b083
       [MOX-003]      Prevent use of uninitialised variable; commit
       [MOX-004]        a4dc944f37b664a3ca7199c624a98ee37babdb4b
                      Add missing parameter validation to public API functions
                        and dedicated error code XML_ERROR_INVALID_ARGUMENT:
       [MOX-006]        * NULL checks; commits
                          * d37f74b2b7149a3a95a680c4c4cd2a451a51d60a (merge/many)
                          * 9ed727064b675b7180c98cb3d4f75efba6966681
                          * 6a747c837c50114dfa413994e07c0ba477be4534
                        * Negative length (XML_Parse); commit
       [MOX-002]          70db8d2538a10f4c022655d6895e4c3e78692e7f
       [MOX-001] #35  Change hash algorithm to William Ahern's version of SipHash
                        to go further with fixing CVE-2012-0876.
                        https://github.com/libexpat/libexpat/pull/39/commits
    
            Bug fixes:
                 #32  Fix sharing of hash salt across parsers;
                        relevant where XML_ExternalEntityParserCreate is called
                        prior to XML_Parse, in particular (e.g. FBReader)
                 #28  xmlwf: Auto-disable use of memory-mapping (and parsing
                        as a single chunk) for files larger than ~1 GB (2^30 bytes)
                        rather than failing with error "out of memory"
                  #3  Fix double free after malloc failure in DTD code; commit
                        7ae9c3d3af433cd4defe95234eae7dc8ed15637f
                 #17  Fix memory leak on parser error for unbound XML attribute
                        prefix with new namespaces defined in the same tag;
                        found by Google's OSS-Fuzz; commits
                        * 16f87daae5a16132e479e4f71862128c7a915c73
                        * b47dbc9745932c160893d433220e462bd605f8cd
                      xmlwf on Windows: Add missing calls to CloseHandle
    
            New features:
                 #30  Introduced environment switch EXPAT_ENTROPY_DEBUG=1
                        for runtime debugging of entropy extraction
    
            Other changes:
                      Increase code coverage
                 #33  Reject use of XML_UNICODE_WCHAR_T with sizeof(wchar_t) != 2;
                        XML_UNICODE_WCHAR_T was never meant to be used outside
                        of Windows; 4-byte wchar_t is common on Linux
       (SF.net) #538  Start using -fno-strict-aliasing
       (SF.net) #540  Support compilation against cloudlibc of CloudABI
                      Allow MinGW cross-compilation
       (SF.net) #534  CMake: Introduce option "BUILD_doc" (enabled by default)
                        to bypass compilation of the xmlwf.1 man page
       (SF.net)  pr2  CMake: Introduce option "INSTALL" (enabled by default)
                        to bypass installation of expat files
                      CMake: Fix ninja support
                      Autotools: Add parameters --enable-xml-context [COUNT]
                        and --disable-xml-context; default of context of 1024
                        bytes enabled unchanged
                 #14  Drop AmigaOS 4.x code and includes
                 #14  Drop ancient build systems:
                        * Borland C++ Builder
                        * OpenVMS
                        * Open Watcom
                        * Visual Studio 6.0
                        * Pre-X Mac OS (MPW Makefile)
                        If you happen to rely on some of these, please get in
                        touch for joining with maintenance.
                 #10  Move from WIN32 to _WIN32
                 #13  Fix "make run-xmltest" order instability
                      Address compile warnings
                      Bump version info from 7:2:6 to 7:3:6
                      Add AUTHORS file
    
            Infrastructure:
                  #1  Migrate from SourceForge to GitHub (except downloads):
                        https://github.com/libexpat/
                  #1  Re-create http://libexpat.org/ project website
                      Start utilizing Travis CI
    
            Special thanks to:
                Andy Wang
                Don Lewis
                Ed Schouten
                Karl Waclawek
                Pascal Cuoq
                Rhodri James
                Sergei Nikulov
                Tobias Taschner
                Viktor Szakats
                     and
                Core Infrastructure Initiative
                Mozilla Foundation (MOSS Track 3: Secure Open Source)
                Radically Open Security
    zoulasc committed Jun 17, 2017
    Configuration menu
    Copy the full SHA
    7db44bd View commit details
    Browse the repository at this point in the history

Commits on Sep 16, 2019

  1. Import expat 2.2.8

    Release 2.2.8 Fri Septemper 13 2019
            Security fixes:
           #317 #318  CVE-2019-15903 -- Fix heap overflow triggered by
                        XML_GetCurrentLineNumber (or XML_GetCurrentColumnNumber),
                        and deny internal entities closing the doctype;
                        fixed in commit c20b758c332d9a13afbbb276d30db1d183a85d43
    
            Bug fixes:
                #240  Fix cases where XML_StopParser did not have any effect
                        when called from inside of an end element handler
                #341  xmlwf: Fix exit code for operation without "-d DIRECTORY";
                        previously, only "-d DIRECTORY" would give you a proper
                        exit code:
                          # xmlwf -d . <<<'<not well-formed>' 2>/dev/null ; echo $?
                          2
                          # xmlwf <<<'<not well-formed>' 2>/dev/null ; echo $?
                          0
                        Now both cases return exit code 2.
    
            Other changes:
           #299 #302  Windows: Replace LoadLibrary hack to access
                        unofficial API function SystemFunction036 (RtlGenRandom)
                        by using official API function rand_s (needs WinXP+)
                #325  Windows: Drop support for Visual Studio <=7.1/2003
                        and document supported compilers in README.md
                #286  Windows: Remove COM code from xmlwf; in case it turns
                        out needed later, there will be a dedicated repository
                        below https://github.com/libexpat/ for that code
                #322  Windows: Remove explicit MSVC solution and project files.
                        You can generate Visual Studio solution files through
                        CMake, e.g.: cmake -G"Visual Studio 15 2017" .
                #338  xmlwf: Make "xmlwf -h" help output more friendly
                #339  examples: Improve elements.c
           #244 #264  Autotools: Add argument --enable-xml-attr-info
           #239 #301  Autotools: Add arguments
                        --with-getrandom
                        --without-getrandom
                        --with-sys-getrandom
                        --without-sys-getrandom
           #312 #343  Autotools: Fix linking issues with "./configure LD=clang"
                      Autotools: Fix "make run-xmltest" for out-of-source builds
           #329 #336  CMake: Pull all options from Expat <=2.2.7 into namespace
                        prefix EXPAT_ with the exception of DOCBOOK_TO_MAN:
                        - BUILD_doc            -> EXPAT_BUILD_DOCS (plural)
                        - BUILD_examples       -> EXPAT_BUILD_EXAMPLES
                        - BUILD_shared         -> EXPAT_SHARED_LIBS
                        - BUILD_tests          -> EXPAT_BUILD_TESTS
                        - BUILD_tools          -> EXPAT_BUILD_TOOLS
                        - DOCBOOK_TO_MAN       -> DOCBOOK_TO_MAN (unchanged)
                        - INSTALL              -> EXPAT_ENABLE_INSTALL
                        - MSVC_USE_STATIC_CRT  -> EXPAT_MSVC_STATIC_CRT
                        - USE_libbsd           -> EXPAT_WITH_LIBBSD
                        - WARNINGS_AS_ERRORS   -> EXPAT_WARNINGS_AS_ERRORS
                        - XML_CONTEXT_BYTES    -> EXPAT_CONTEXT_BYTES
                        - XML_DEV_URANDOM      -> EXPAT_DEV_URANDOM
                        - XML_DTD              -> EXPAT_DTD
                        - XML_NS               -> EXPAT_NS
                        - XML_UNICODE          -> EXPAT_CHAR_TYPE=ushort (!)
                        - XML_UNICODE_WCHAR_T  -> EXPAT_CHAR_TYPE=wchar_t (!)
           #244 #264  CMake: Add argument -DEXPAT_ATTR_INFO=(ON|OFF),
                        default OFF
                #326  CMake: Add argument -DEXPAT_LARGE_SIZE=(ON|OFF),
                        default OFF
                #328  CMake: Add argument -DEXPAT_MIN_SIZE=(ON|OFF),
                        default OFF
           #239 #277  CMake: Add arguments
                        -DEXPAT_WITH_GETRANDOM=(ON|OFF|AUTO), default AUTO
                        -DEXPAT_WITH_SYS_GETRANDOM=(ON|OFF|AUTO), default AUTO
                #326  CMake: Install expat_config.h to include directory
                #326  CMake: Generate and install configuration files for
                        future find_package(expat [..] CONFIG [..])
                      CMake: Now produces a summary of applied configuration
                      CMake: Require C++ compiler only when tests are enabled
                #330  CMake: Fix compilation for 16bit character types,
                        i.e. ex -DXML_UNICODE=ON (and ex -DXML_UNICODE_WCHAR_T=ON)
                #265  CMake: Fix linking with MinGW
                #330  CMake: Add full support for MinGW; to enable, use
                        -DCMAKE_TOOLCHAIN_FILE=[expat]/cmake/mingw-toolchain.cmake
                #330  CMake: Port "make run-xmltest" from GNU Autotools to CMake
                #316  CMake: Windows: Make binary postfix match MSVC
                        Old: expat[d].lib
                        New: expat[w][d][MD|MT].lib
                      CMake: Migrate files from Windows to Unix line endings
                #308  CMake: Integrate OSS-Fuzz fuzzers, option
                        -DEXPAT_BUILD_FUZZERS=(ON|OFF), default OFF
                 #14  Drop an OpenVMS support leftover
        #235 #268 ..
        #270 #310 ..
      #313 #331 #333  Address compiler warnings
        #282 #283 ..
           #284 #285  Address cppcheck warnings
           #294 #295  Address Clang Static Analyzer warnings
            #24 #293  Mass-apply clang-format 9 (and ensure conformance during CI)
                      Version info bumped from 7:9:6 to 7:10:6
    
            Special thanks to:
                David Loffredo
                Joonun Jang
                Khajapasha Mohammed
                Kishore Kunche
                Marco Maggi
                Mitch Phillips
                Rolf Ade
                xantares
                Zhongyuan Zhou
    coypoop committed Sep 16, 2019
    Configuration menu
    Copy the full SHA
    332dfcd View commit details
    Browse the repository at this point in the history

Commits on Feb 23, 2022

  1. Upgrade expat from 2.2.8 -> 2.4.6 to include the security fixes from …

    …2.4.5
    
    Release 2.4.6 Sun February 20 2022
            Bug fixes:
                #566  Fix a regression introduced by the fix for CVE-2022-25313
                        in release 2.4.5 that affects applications that (1)
                        call function XML_SetElementDeclHandler and (2) are
                        parsing XML that contains nested element declarations
                        (e.g. "<!ELEMENT junk ((bar|foo|xyz+), zebra*)>").
    
            Other changes:
           #567 #568  Version info bumped from 9:5:8 to 9:6:8;
                        see https://verbump.de/ for what these numbers do
    
            Special thanks to:
                Matt Sergeant
                Samanta Navarro
                Sergei Trofimovich
                     and
                NixOS
                Perl XML::Parser
    
    Release 2.4.5 Fri February 18 2022
            Security fixes:
                #562  CVE-2022-25235 -- Passing malformed 2- and 3-byte UTF-8
                        sequences (e.g. from start tag names) to the XML
                        processing application on top of Expat can cause
                        arbitrary damage (e.g. code execution) depending
                        on how invalid UTF-8 is handled inside the XML
                        processor; validation was not their job but Expat's.
                        Exploits with code execution are known to exist.
                #561  CVE-2022-25236 -- Passing (one or more) namespace separator
                        characters in "xmlns[:prefix]" attribute values
                        made Expat send malformed tag names to the XML
                        processor on top of Expat which can cause
                        arbitrary damage (e.g. code execution) depending
                        on such unexpectable cases are handled inside the XML
                        processor; validation was not their job but Expat's.
                        Exploits with code execution are known to exist.
                #558  CVE-2022-25313 -- Fix stack exhaustion in doctype parsing
                        that could be triggered by e.g. a 2 megabytes
                        file with a large number of opening braces.
                        Expected impact is denial of service or potentially
                        arbitrary code execution.
                #560  CVE-2022-25314 -- Fix integer overflow in function copyString;
                        only affects the encoding name parameter at parser creation
                        time which is often hardcoded (rather than user input),
                        takes a value in the gigabytes to trigger, and a 64-bit
                        machine.  Expected impact is denial of service.
                #559  CVE-2022-25315 -- Fix integer overflow in function storeRawNames;
                        needs input in the gigabytes and a 64-bit machine.
                        Expected impact is denial of service or potentially
                        arbitrary code execution.
    
            Other changes:
           #557 #564  Version info bumped from 9:4:8 to 9:5:8;
                        see https://verbump.de/ for what these numbers do
    
            Special thanks to:
                Ivan Fratric
                Samanta Navarro
                     and
                Google Project Zero
                JetBrains
    
    Release 2.4.4 Sun January 30 2022
            Security fixes:
                #550  CVE-2022-23852 -- Fix signed integer overflow
                        (undefined behavior) in function XML_GetBuffer
                        (that is also called by function XML_Parse internally)
                        for when XML_CONTEXT_BYTES is defined to >0 (which is both
                        common and default).
                        Impact is denial of service or more.
                #551  CVE-2022-23990 -- Fix unsigned integer overflow in function
                        doProlog triggered by large content in element type
                        declarations when there is an element declaration handler
                        present (from a prior call to XML_SetElementDeclHandler).
                        Impact is denial of service or more.
    
            Bug fixes:
           #544 #545  xmlwf: Fix a memory leak on output file opening error
    
            Other changes:
                #546  Autotools: Fix broken CMake support under Cygwin
                #554  Windows: Add missing files to the installer to fix
                        compilation with CMake from installed sources
           #552 #554  Version info bumped from 9:3:8 to 9:4:8;
                        see https://verbump.de/ for what these numbers do
    
            Special thanks to:
                Carlo Bramini
                hwt0415
                Roland Illig
                Samanta Navarro
                     and
                Clang LeakSan and the Clang team
    
    Release 2.4.3 Sun January 16 2022
            Security fixes:
           #531 #534  CVE-2021-45960 -- Fix issues with left shifts by >=29 places
                        resulting in
                          a) realloc acting as free
                          b) realloc allocating too few bytes
                          c) undefined behavior
                        depending on architecture and precise value
                        for XML documents with >=2^27+1 prefixed attributes
                        on a single XML tag a la
                        "<r xmlns:a='[..]' a:a123='[..]' [..] />"
                        where XML_ParserCreateNS is used to create the parser
                        (which needs argument "-n" when running xmlwf).
                        Impact is denial of service, or more.
           #532 #538  CVE-2021-46143 (ZDI-CAN-16157) -- Fix integer overflow
                        on variable m_groupSize in function doProlog leading
                        to realloc acting as free.
                        Impact is denial of service or more.
                #539  CVE-2022-22822 to CVE-2022-22827 -- Prevent integer overflows
                        near memory allocation at multiple places.  Mitre assigned
                        a dedicated CVE for each involved internal C function:
                        - CVE-2022-22822 for function addBinding
                        - CVE-2022-22823 for function build_model
                        - CVE-2022-22824 for function defineAttribute
                        - CVE-2022-22825 for function lookup
                        - CVE-2022-22826 for function nextScaffoldPart
                        - CVE-2022-22827 for function storeAtts
                        Impact is denial of service or more.
    
            Other changes:
                #535  CMake: Make call to file(GENERATE [..]) work for CMake <3.19
                #541  Autotools|CMake: MinGW: Make run.sh(.in) work for Cygwin
                        and MSYS2 by not going through Wine on these platforms
           #527 #528  Address compiler warnings
           #533 #543  Version info bumped from 9:2:8 to 9:3:8;
                        see https://verbump.de/ for what these numbers do
    
            Infrastructure:
                #536  CI: Check for realistic minimum CMake version
           #529 #539  CI: Cover compilation with -m32
                #529  CI: Store coverage reports as artifacts for download
                #528  CI: Upgrade Clang from 11 to 13
    
            Special thanks to:
                An anonymous whitehat
                Christopher Degawa
                J. Peter Mugaas
                Tyson Smith
                     and
                GCC Farm Project
                Trend Micro Zero Day Initiative
    
    Release 2.4.2 Sun December 19 2021
            Other changes:
           #509 #510  Link againgst libm for function "isnan"
           #513 #514  Include expat_config.h as early as possible
                #498  Autotools: Include files with release archives:
                        - buildconf.sh
                        - fuzz/*.c
           #507 #519  Autotools: Sync CMake templates
           #495 #524  CMake: MinGW: Fix pkg-config section "Libs" for
                        - non-release build types (e.g. -DCMAKE_BUILD_TYPE=Debug)
                        - multi-config CMake generators (e.g. Ninja Multi-Config)
           #502 #503  docs: Document that function XML_GetBuffer may return NULL
                        when asking for a buffer of 0 (zero) bytes size
           #522 #523  docs: Fix return value docs for both
                        XML_SetBillionLaughsAttackProtection* functions
           #525 #526  Version info bumped from 9:1:8 to 9:2:8;
                        see https://verbump.de/ for what these numbers do
    
            Special thanks to:
                Dong-hee Na
                Joergen Ibsen
                Kai Pastor
    
    Release 2.4.1 Sun May 23 2021
            Bug fixes:
           #488 #490  Autotools: Fix installed header expat_config.h for multilib
                        systems; regression introduced in 2.4.0 by pull request #486
    
            Other changes:
           #491 #492  Version info bumped from 9:0:8 to 9:1:8;
                        see https://verbump.de/ for what these numbers do
    
            Special thanks to:
                Gentoo's QA check "multilib_check_headers"
    
    Release 2.4.0 Sun May 23 2021
            Security fixes:
       #34 #466 #484  CVE-2013-0340/CWE-776 -- Protect against billion laughs attacks
                        (denial-of-service; flavors targeting CPU time or RAM or both,
                        leveraging general entities or parameter entities or both)
                        by tracking and limiting the input amplification factor
                        (<amplification> := (<direct> + <indirect>) / <direct>).
                        By conservative default, amplification up to a factor of 100.0
                        is tolerated and rejection only starts after 8 MiB of output bytes
                        (=<direct> + <indirect>) have been processed.
                        The fix adds the following to the API:
                        - A new error code XML_ERROR_AMPLIFICATION_LIMIT_BREACH to
                          signals this specific condition.
                        - Two new API functions ..
                          - XML_SetBillionLaughsAttackProtectionMaximumAmplification and
                          - XML_SetBillionLaughsAttackProtectionActivationThreshold
                          .. to further tighten billion laughs protection parameters
                          when desired.  Please see file "doc/reference.html" for details.
                          If you ever need to increase the defaults for non-attack XML
                          payload, please file a bug report with libexpat.
                        - Two new XML_FEATURE_* constants ..
                          - that can be queried using the XML_GetFeatureList function, and
                          - that are shown in "xmlwf -v" output.
                        - Two new environment variable switches ..
                          - EXPAT_ACCOUNTING_DEBUG=(0|1|2|3) and
                          - EXPAT_ENTITY_DEBUG=(0|1)
                          .. for runtime debugging of accounting and entity processing.
                          Specific behavior of these values may change in the future.
                        - Two new command line arguments "-a FACTOR" and "-b BYTES"
                          for xmlwf to further tighten billion laughs protection
                          parameters when desired.
                          If you ever need to increase the defaults for non-attack XML
                          payload, please file a bug report with libexpat.
    
            Bug fixes:
           #332 #470  For (non-default) compilation with -DEXPAT_MIN_SIZE=ON (CMake)
                        or CPPFLAGS=-DXML_MIN_SIZE (GNU Autotools): Fix segfault
                        for UTF-16 payloads containing CDATA sections.
           #485 #486  Autotools: Fix generated CMake files for non-64bit and
                        non-Linux platforms (e.g. macOS and MinGW in particular)
                        that were introduced with release 2.3.0
    
            Other changes:
           #468 #469  xmlwf: Improve help output and the xmlwf man page
                #463  xmlwf: Improve maintainability through some refactoring
                #477  xmlwf: Fix man page DocBook validity
           #458 #459  CMake: Support absolute paths for both CMAKE_INSTALL_LIBDIR
                        and CMAKE_INSTALL_INCLUDEDIR
           #471 #481  CMake: Add support for standard variable BUILD_SHARED_LIBS
                #457  Unexpose symbol _INTERNAL_trim_to_complete_utf8_characters
                #467  Resolve macro HAVE_EXPAT_CONFIG_H
                #472  Delete unused legacy helper file "conftools/PrintPath"
           #473 #483  Improve attribution
      #464 #465 #477  doc/reference.html: Fix XHTML validity
           #475 #478  doc/reference.html: Replace the 90s look by OK.css
                #479  Version info bumped from 8:0:7 to 9:0:8
                        due to addition of new symbols and error codes;
                        see https://verbump.de/ for what these numbers do
    
            Infrastructure:
                #456  CI: Enable periodic runs
                #457  CI: Start covering the list of exported symbols
                #474  CI: Isolate coverage task
           #476 #482  CI: Adapt to breaking changes in image "ubuntu-18.04"
                #477  CI: Cover well-formedness and DocBook/XHTML validity
                        of doc/reference.html and doc/xmlwf.xml
    
            Special thanks to:
                Dimitry Andric
                Eero Helenius
                Nick Wellnhofer
                Rhodri James
                Tomas Korbar
                Yury Gribov
                     and
                Clang LeakSan
                JetBrains
                OSS-Fuzz
    
    Release 2.3.0 Thu March 25 2021
            Bug fixes:
                #438  When calling XML_ParseBuffer without a prior successful call to
                        XML_GetBuffer as a user, no longer trigger undefined behavior
                        (by adding an integer to a NULL pointer) but rather return
                        XML_STATUS_ERROR and set the error code to (new) code
                        XML_ERROR_NO_BUFFER. Found by UBSan (UndefinedBehaviorSanitizer)
                        of Clang 11 (but not Clang 9).
                #444  xmlwf: Exit status 2 was used for both:
                        - malformed input files (documented) and
                        - invalid command-line arguments (undocumented).
                        The case of invalid command-line arguments now
                        has its own exit status 4, resolving the ambiguity.
    
            Other changes:
                #439  xmlwf: Add argument -k to allow continuing after
                        non-fatal errors
                #439  xmlwf: Add section about exit status to the -h help output
      #422 #426 #447  Windows: Drop support for Visual Studio <=14.0/2015
                #434  Windows: CMake: Detect unsupported Visual Studio at
                        configure time (rather than at compile time)
           #382 #428  testrunner: Make verbose mode (argument "-v") report
                        about passed tests, and make default mode report about
                        failures, as well.
                #442  CMake: Call "enable_language(CXX)" prior to tinkering
                        with CMAKE_CXX_* variables
                #448  Document use of libexpat from a CMake-based project
                #451  Autotools: Install CMake files as generated by CMake 3.19.6
                        so that users with "find_package(expat [..] CONFIG [..])"
                        are served on distributions that are *not* using the CMake
                        build system inside for libexpat packaging
           #436 #437  Autotools: Drop obsolescent macro AC_HEADER_STDC
           #450 #452  Autotools: Resolve use of obsolete macro AC_CONFIG_HEADER
                #441  Address compiler warnings
                #443  Version info bumped from 7:12:6 to 8:0:7
                        due to addition of error code XML_ERROR_NO_BUFFER
                        (see https://verbump.de/ for what these numbers do)
    
            Infrastructure:
           #435 #446  Replace Travis CI by GitHub Actions
    
            Special thanks to:
                Alexander Richardson
                Oleksandr Popovych
                Thomas Beutlich
                Tim Bray
                     and
                Clang LeakSan, Clang 11 UBSan and the Clang team
    
    Release 2.2.10 Sat October 3 2020
            Bug fixes:
      #390 #395 #398  Fix undefined behavior during parsing caused by
                        pointer arithmetic with NULL pointers
           #404 #405  Fix reading uninitialized variable during parsing
                #406  xmlwf: Add missing check for malloc NULL return
    
            Other changes:
                #396  Windows: Drop support for Visual Studio <=8.0/2005
                #409  Windows: Add missing file "Changes" to the installer
                        to fix compilation with CMake from installed sources
                #403  xmlwf: Document exit codes in xmlwf manpage and
                        exit with code 3 (rather than code 1) for output errors
                        when used with "-d DIRECTORY"
           #356 #359  MinGW: Provide declaration of rand_s for mingwrt <5.3.0
           #383 #392  Autotools: Use -Werror while configure tests the compiler
                        for supported compile flags to avoid false positives
      #383 #393 #394  Autotools: Improve handling of user (C|CPP|CXX|LD)FLAGS,
                        e.g. ensure that they have the last word over flags added
                        while running ./configure
                #360  CMake: Create libexpatw.{dll,so} and expatw.pc (with emphasis
                        on suffix "w") with -DEXPAT_CHAR_TYPE=(ushort|wchar_t)
                #360  CMake: Detect and deny unsupported build combinations
                        involving -DEXPAT_CHAR_TYPE=(ushort|wchar_t)
                #360  CMake: Install pre-compiled shipped xmlwf.1 manpage in case
                        of -DEXPAT_BUILD_DOCS=OFF
      #375 #380 #419  CMake: Fix use of Expat by means of add_subdirectory
           #407 #408  CMake: Keep expat target name constant at "expat"
                        (i.e. refrain from using the target name to control
                        build artifact filenames)
                #385  CMake: Fix compilation with -DEXPAT_SHARED_LIBS=OFF for
                        Windows
                      CMake: Expose man page compilation as target "xmlwf-manpage"
           #413 #414  CMake: Introduce option EXPAT_BUILD_PKGCONFIG
                        to control generation of pkg-config file "expat.pc"
                #424  CMake: Add minimalistic support for building binary packages
                        with CMake target "package"; based on CPack
                #366  CMake: Add option -DEXPAT_OSSFUZZ_BUILD=(ON|OFF) with
                        default OFF to build fuzzer code against OSS-Fuzz and
                        related environment variable LIB_FUZZING_ENGINE
                #354  Fix testsuite for -DEXPAT_DTD=OFF and -DEXPAT_NS=OFF, each
        #354 #355 ..
           #356 #412  Address compiler warnings
           #368 #369  Address pngcheck warnings with doc/*.png images
                #425  Version info bumped from 7:11:6 to 7:12:6
    
            Special thanks to:
                asavah
                Ben Wagner
                Bhargava Shastry
                Frank Landgraf
                Jeffrey Walton
                Joe Orton
                Kleber Tarcísio
                Ma Lin
                Maciej Sroczy#ski
                Mohammed Khajapasha
                Vadim Zeitlin
                     and
                Cppcheck 2.0 and the Cppcheck team
    
    Release 2.2.9 Wed September 25 2019
            Other changes:
                      examples: Drop executable bits from elements.c
                #349  Windows: Change the name of the Windows DLLs from expat*.dll
                        to libexpat*.dll once more (regression from 2.2.8, first
                        fixed in 1.95.3, issue #61 on SourceForge today,
                        was issue #432456 back then); needs a fix due
                        case-insensitive file systems on Windows and the fact that
                        Perl's XML::Parser::Expat compiles into Expat.dll.
                #347  Windows: Only define _CRT_RAND_S if not defined
                      Version info bumped from 7:10:6 to 7:11:6
    
            Special thanks to:
                Ben Wagner
    zoulasc committed Feb 23, 2022
    Configuration menu
    Copy the full SHA
    3a1440d View commit details
    Browse the repository at this point in the history

Commits on Mar 14, 2025

  1. Import expat 2.7.0

    0-wiz-0 committed Mar 14, 2025
    Configuration menu
    Copy the full SHA
    189ace5 View commit details
    Browse the repository at this point in the history

Commits on Apr 18, 2025

  1. Import expat 2.7.1.

    0-wiz-0 committed Apr 18, 2025
    Configuration menu
    Copy the full SHA
    05336b3 View commit details
    Browse the repository at this point in the history

Commits on Jun 13, 2026

  1. Import expat 2.8.1 as expat-2-8-1

    jdc authored and jdc committed Jun 13, 2026
    Configuration menu
    Copy the full SHA
    b1b6d32 View commit details
    Browse the repository at this point in the history
Loading