xref: /freebsd/contrib/expat/Changes (revision cc68614da8232d8baaca0ae0d0dd8f890f06623e)
10a48773fSEric van GyzenNOTE: We are looking for help with a few things:
20a48773fSEric van Gyzen      https://github.com/libexpat/libexpat/labels/help%20wanted
30a48773fSEric van Gyzen      If you can help, please get in touch.  Thanks!
40a48773fSEric van Gyzen
5*cc68614dSXin LIRelease 2.4.3 Sun January 16 2022
6*cc68614dSXin LI        Security fixes:
7*cc68614dSXin LI       #531 #534  CVE-2021-45960 -- Fix issues with left shifts by >=29 places
8*cc68614dSXin LI                    resulting in
9*cc68614dSXin LI                      a) realloc acting as free
10*cc68614dSXin LI                      b) realloc allocating too few bytes
11*cc68614dSXin LI                      c) undefined behavior
12*cc68614dSXin LI                    depending on architecture and precise value
13*cc68614dSXin LI                    for XML documents with >=2^27+1 prefixed attributes
14*cc68614dSXin LI                    on a single XML tag a la
15*cc68614dSXin LI                    "<r xmlns:a='[..]' a:a123='[..]' [..] />"
16*cc68614dSXin LI                    where XML_ParserCreateNS is used to create the parser
17*cc68614dSXin LI                    (which needs argument "-n" when running xmlwf).
18*cc68614dSXin LI                    Impact is denial of service, or more.
19*cc68614dSXin LI       #532 #538  CVE-2021-46143 (ZDI-CAN-16157) -- Fix integer overflow
20*cc68614dSXin LI                    on variable m_groupSize in function doProlog leading
21*cc68614dSXin LI                    to realloc acting as free.
22*cc68614dSXin LI                    Impact is denial of service or more.
23*cc68614dSXin LI            #539  CVE-2022-22822 to CVE-2022-22827 -- Prevent integer overflows
24*cc68614dSXin LI                    near memory allocation at multiple places.  Mitre assigned
25*cc68614dSXin LI                    a dedicated CVE for each involved internal C function:
26*cc68614dSXin LI                    - CVE-2022-22822 for function addBinding
27*cc68614dSXin LI                    - CVE-2022-22823 for function build_model
28*cc68614dSXin LI                    - CVE-2022-22824 for function defineAttribute
29*cc68614dSXin LI                    - CVE-2022-22825 for function lookup
30*cc68614dSXin LI                    - CVE-2022-22826 for function nextScaffoldPart
31*cc68614dSXin LI                    - CVE-2022-22827 for function storeAtts
32*cc68614dSXin LI                    Impact is denial of service or more.
33*cc68614dSXin LI
34*cc68614dSXin LI        Other changes:
35*cc68614dSXin LI            #535  CMake: Make call to file(GENERATE [..]) work for CMake <3.19
36*cc68614dSXin LI            #541  Autotools|CMake: MinGW: Make run.sh(.in) work for Cygwin
37*cc68614dSXin LI                    and MSYS2 by not going through Wine on these platforms
38*cc68614dSXin LI       #527 #528  Address compiler warnings
39*cc68614dSXin LI       #533 #543  Version info bumped from 9:2:8 to 9:3:8;
40*cc68614dSXin LI                    see https://verbump.de/ for what these numbers do
41*cc68614dSXin LI
42*cc68614dSXin LI        Infrastructure:
43*cc68614dSXin LI            #536  CI: Check for realistic minimum CMake version
44*cc68614dSXin LI       #529 #539  CI: Cover compilation with -m32
45*cc68614dSXin LI            #529  CI: Store coverage reports as artifacts for download
46*cc68614dSXin LI            #528  CI: Upgrade Clang from 11 to 13
47*cc68614dSXin LI
48*cc68614dSXin LI        Special thanks to:
49*cc68614dSXin LI            An anonymous whitehat
50*cc68614dSXin LI            Christopher Degawa
51*cc68614dSXin LI            J. Peter Mugaas
52*cc68614dSXin LI            Tyson Smith
53*cc68614dSXin LI                 and
54*cc68614dSXin LI            GCC Farm Project
55*cc68614dSXin LI            Trend Micro Zero Day Initiative
56*cc68614dSXin LI
57*cc68614dSXin LIRelease 2.4.2 Sun December 19 2021
58*cc68614dSXin LI        Other changes:
59*cc68614dSXin LI       #509 #510  Link againgst libm for function "isnan"
60*cc68614dSXin LI       #513 #514  Include expat_config.h as early as possible
61*cc68614dSXin LI            #498  Autotools: Include files with release archives:
62*cc68614dSXin LI                    - buildconf.sh
63*cc68614dSXin LI                    - fuzz/*.c
64*cc68614dSXin LI       #507 #519  Autotools: Sync CMake templates
65*cc68614dSXin LI       #495 #524  CMake: MinGW: Fix pkg-config section "Libs" for
66*cc68614dSXin LI                    - non-release build types (e.g. -DCMAKE_BUILD_TYPE=Debug)
67*cc68614dSXin LI                    - multi-config CMake generators (e.g. Ninja Multi-Config)
68*cc68614dSXin LI       #502 #503  docs: Document that function XML_GetBuffer may return NULL
69*cc68614dSXin LI                    when asking for a buffer of 0 (zero) bytes size
70*cc68614dSXin LI       #522 #523  docs: Fix return value docs for both
71*cc68614dSXin LI                    XML_SetBillionLaughsAttackProtection* functions
72*cc68614dSXin LI       #525 #526  Version info bumped from 9:1:8 to 9:2:8;
73*cc68614dSXin LI                    see https://verbump.de/ for what these numbers do
74*cc68614dSXin LI
75*cc68614dSXin LI        Special thanks to:
76*cc68614dSXin LI            Dong-hee Na
77*cc68614dSXin LI            Joergen Ibsen
78*cc68614dSXin LI            Kai Pastor
79*cc68614dSXin LI
80*cc68614dSXin LIRelease 2.4.1 Sun May 23 2021
81*cc68614dSXin LI        Bug fixes:
82*cc68614dSXin LI       #488 #490  Autotools: Fix installed header expat_config.h for multilib
83*cc68614dSXin LI                    systems; regression introduced in 2.4.0 by pull request #486
84*cc68614dSXin LI
85*cc68614dSXin LI        Other changes:
86*cc68614dSXin LI       #491 #492  Version info bumped from 9:0:8 to 9:1:8;
87*cc68614dSXin LI                    see https://verbump.de/ for what these numbers do
88*cc68614dSXin LI
89*cc68614dSXin LI        Special thanks to:
90*cc68614dSXin LI            Gentoo's QA check "multilib_check_headers"
91*cc68614dSXin LI
92*cc68614dSXin LIRelease 2.4.0 Sun May 23 2021
93*cc68614dSXin LI        Security fixes:
94*cc68614dSXin LI   #34 #466 #484  CVE-2013-0340/CWE-776 -- Protect against billion laughs attacks
95*cc68614dSXin LI                    (denial-of-service; flavors targeting CPU time or RAM or both,
96*cc68614dSXin LI                    leveraging general entities or parameter entities or both)
97*cc68614dSXin LI                    by tracking and limiting the input amplification factor
98*cc68614dSXin LI                    (<amplification> := (<direct> + <indirect>) / <direct>).
99*cc68614dSXin LI                    By conservative default, amplification up to a factor of 100.0
100*cc68614dSXin LI                    is tolerated and rejection only starts after 8 MiB of output bytes
101*cc68614dSXin LI                    (=<direct> + <indirect>) have been processed.
102*cc68614dSXin LI                    The fix adds the following to the API:
103*cc68614dSXin LI                    - A new error code XML_ERROR_AMPLIFICATION_LIMIT_BREACH to
104*cc68614dSXin LI                      signals this specific condition.
105*cc68614dSXin LI                    - Two new API functions ..
106*cc68614dSXin LI                      - XML_SetBillionLaughsAttackProtectionMaximumAmplification and
107*cc68614dSXin LI                      - XML_SetBillionLaughsAttackProtectionActivationThreshold
108*cc68614dSXin LI                      .. to further tighten billion laughs protection parameters
109*cc68614dSXin LI                      when desired.  Please see file "doc/reference.html" for details.
110*cc68614dSXin LI                      If you ever need to increase the defaults for non-attack XML
111*cc68614dSXin LI                      payload, please file a bug report with libexpat.
112*cc68614dSXin LI                    - Two new XML_FEATURE_* constants ..
113*cc68614dSXin LI                      - that can be queried using the XML_GetFeatureList function, and
114*cc68614dSXin LI                      - that are shown in "xmlwf -v" output.
115*cc68614dSXin LI                    - Two new environment variable switches ..
116*cc68614dSXin LI                      - EXPAT_ACCOUNTING_DEBUG=(0|1|2|3) and
117*cc68614dSXin LI                      - EXPAT_ENTITY_DEBUG=(0|1)
118*cc68614dSXin LI                      .. for runtime debugging of accounting and entity processing.
119*cc68614dSXin LI                      Specific behavior of these values may change in the future.
120*cc68614dSXin LI                    - Two new command line arguments "-a FACTOR" and "-b BYTES"
121*cc68614dSXin LI                      for xmlwf to further tighten billion laughs protection
122*cc68614dSXin LI                      parameters when desired.
123*cc68614dSXin LI                      If you ever need to increase the defaults for non-attack XML
124*cc68614dSXin LI                      payload, please file a bug report with libexpat.
125*cc68614dSXin LI
126*cc68614dSXin LI        Bug fixes:
127*cc68614dSXin LI       #332 #470  For (non-default) compilation with -DEXPAT_MIN_SIZE=ON (CMake)
128*cc68614dSXin LI                    or CPPFLAGS=-DXML_MIN_SIZE (GNU Autotools): Fix segfault
129*cc68614dSXin LI                    for UTF-16 payloads containing CDATA sections.
130*cc68614dSXin LI       #485 #486  Autotools: Fix generated CMake files for non-64bit and
131*cc68614dSXin LI                    non-Linux platforms (e.g. macOS and MinGW in particular)
132*cc68614dSXin LI                    that were introduced with release 2.3.0
133*cc68614dSXin LI
134*cc68614dSXin LI        Other changes:
135*cc68614dSXin LI       #468 #469  xmlwf: Improve help output and the xmlwf man page
136*cc68614dSXin LI            #463  xmlwf: Improve maintainability through some refactoring
137*cc68614dSXin LI            #477  xmlwf: Fix man page DocBook validity
138*cc68614dSXin LI       #458 #459  CMake: Support absolute paths for both CMAKE_INSTALL_LIBDIR
139*cc68614dSXin LI                    and CMAKE_INSTALL_INCLUDEDIR
140*cc68614dSXin LI       #471 #481  CMake: Add support for standard variable BUILD_SHARED_LIBS
141*cc68614dSXin LI            #457  Unexpose symbol _INTERNAL_trim_to_complete_utf8_characters
142*cc68614dSXin LI            #467  Resolve macro HAVE_EXPAT_CONFIG_H
143*cc68614dSXin LI            #472  Delete unused legacy helper file "conftools/PrintPath"
144*cc68614dSXin LI       #473 #483  Improve attribution
145*cc68614dSXin LI  #464 #465 #477  doc/reference.html: Fix XHTML validity
146*cc68614dSXin LI       #475 #478  doc/reference.html: Replace the 90s look by OK.css
147*cc68614dSXin LI            #479  Version info bumped from 8:0:7 to 9:0:8
148*cc68614dSXin LI                    due to addition of new symbols and error codes;
149*cc68614dSXin LI                    see https://verbump.de/ for what these numbers do
150*cc68614dSXin LI
151*cc68614dSXin LI        Infrastructure:
152*cc68614dSXin LI            #456  CI: Enable periodic runs
153*cc68614dSXin LI            #457  CI: Start covering the list of exported symbols
154*cc68614dSXin LI            #474  CI: Isolate coverage task
155*cc68614dSXin LI       #476 #482  CI: Adapt to breaking changes in image "ubuntu-18.04"
156*cc68614dSXin LI            #477  CI: Cover well-formedness and DocBook/XHTML validity
157*cc68614dSXin LI                    of doc/reference.html and doc/xmlwf.xml
158*cc68614dSXin LI
159*cc68614dSXin LI        Special thanks to:
160*cc68614dSXin LI            Dimitry Andric
161*cc68614dSXin LI            Eero Helenius
162*cc68614dSXin LI            Nick Wellnhofer
163*cc68614dSXin LI            Rhodri James
164*cc68614dSXin LI            Tomas Korbar
165*cc68614dSXin LI            Yury Gribov
166*cc68614dSXin LI                 and
167*cc68614dSXin LI            Clang LeakSan
168*cc68614dSXin LI            JetBrains
169*cc68614dSXin LI            OSS-Fuzz
170*cc68614dSXin LI
171*cc68614dSXin LIRelease 2.3.0 Thu March 25 2021
172*cc68614dSXin LI        Bug fixes:
173*cc68614dSXin LI            #438  When calling XML_ParseBuffer without a prior successful call to
174*cc68614dSXin LI                    XML_GetBuffer as a user, no longer trigger undefined behavior
175*cc68614dSXin LI                    (by adding an integer to a NULL pointer) but rather return
176*cc68614dSXin LI                    XML_STATUS_ERROR and set the error code to (new) code
177*cc68614dSXin LI                    XML_ERROR_NO_BUFFER. Found by UBSan (UndefinedBehaviorSanitizer)
178*cc68614dSXin LI                    of Clang 11 (but not Clang 9).
179*cc68614dSXin LI            #444  xmlwf: Exit status 2 was used for both:
180*cc68614dSXin LI                    - malformed input files (documented) and
181*cc68614dSXin LI                    - invalid command-line arguments (undocumented).
182*cc68614dSXin LI                    The case of invalid command-line arguments now
183*cc68614dSXin LI                    has its own exit status 4, resolving the ambiguity.
184*cc68614dSXin LI
185*cc68614dSXin LI        Other changes:
186*cc68614dSXin LI            #439  xmlwf: Add argument -k to allow continuing after
187*cc68614dSXin LI                    non-fatal errors
188*cc68614dSXin LI            #439  xmlwf: Add section about exit status to the -h help output
189*cc68614dSXin LI  #422 #426 #447  Windows: Drop support for Visual Studio <=14.0/2015
190*cc68614dSXin LI            #434  Windows: CMake: Detect unsupported Visual Studio at
191*cc68614dSXin LI                    configure time (rather than at compile time)
192*cc68614dSXin LI       #382 #428  testrunner: Make verbose mode (argument "-v") report
193*cc68614dSXin LI                    about passed tests, and make default mode report about
194*cc68614dSXin LI                    failures, as well.
195*cc68614dSXin LI            #442  CMake: Call "enable_language(CXX)" prior to tinkering
196*cc68614dSXin LI                    with CMAKE_CXX_* variables
197*cc68614dSXin LI            #448  Document use of libexpat from a CMake-based project
198*cc68614dSXin LI            #451  Autotools: Install CMake files as generated by CMake 3.19.6
199*cc68614dSXin LI                    so that users with "find_package(expat [..] CONFIG [..])"
200*cc68614dSXin LI                    are served on distributions that are *not* using the CMake
201*cc68614dSXin LI                    build system inside for libexpat packaging
202*cc68614dSXin LI       #436 #437  Autotools: Drop obsolescent macro AC_HEADER_STDC
203*cc68614dSXin LI       #450 #452  Autotools: Resolve use of obsolete macro AC_CONFIG_HEADER
204*cc68614dSXin LI            #441  Address compiler warnings
205*cc68614dSXin LI            #443  Version info bumped from 7:12:6 to 8:0:7
206*cc68614dSXin LI                    due to addition of error code XML_ERROR_NO_BUFFER
207*cc68614dSXin LI                    (see https://verbump.de/ for what these numbers do)
208*cc68614dSXin LI
209*cc68614dSXin LI        Infrastructure:
210*cc68614dSXin LI       #435 #446  Replace Travis CI by GitHub Actions
211*cc68614dSXin LI
212*cc68614dSXin LI        Special thanks to:
213*cc68614dSXin LI            Alexander Richardson
214*cc68614dSXin LI            Oleksandr Popovych
215*cc68614dSXin LI            Thomas Beutlich
216*cc68614dSXin LI            Tim Bray
217*cc68614dSXin LI                 and
218*cc68614dSXin LI            Clang LeakSan, Clang 11 UBSan and the Clang team
219*cc68614dSXin LI
220*cc68614dSXin LIRelease 2.2.10 Sat October 3 2020
221*cc68614dSXin LI        Bug fixes:
222*cc68614dSXin LI  #390 #395 #398  Fix undefined behavior during parsing caused by
223*cc68614dSXin LI                    pointer arithmetic with NULL pointers
224*cc68614dSXin LI       #404 #405  Fix reading uninitialized variable during parsing
225*cc68614dSXin LI            #406  xmlwf: Add missing check for malloc NULL return
226*cc68614dSXin LI
227*cc68614dSXin LI        Other changes:
228*cc68614dSXin LI            #396  Windows: Drop support for Visual Studio <=8.0/2005
229*cc68614dSXin LI            #409  Windows: Add missing file "Changes" to the installer
230*cc68614dSXin LI                    to fix compilation with CMake from installed sources
231*cc68614dSXin LI            #403  xmlwf: Document exit codes in xmlwf manpage and
232*cc68614dSXin LI                    exit with code 3 (rather than code 1) for output errors
233*cc68614dSXin LI                    when used with "-d DIRECTORY"
234*cc68614dSXin LI       #356 #359  MinGW: Provide declaration of rand_s for mingwrt <5.3.0
235*cc68614dSXin LI       #383 #392  Autotools: Use -Werror while configure tests the compiler
236*cc68614dSXin LI                    for supported compile flags to avoid false positives
237*cc68614dSXin LI  #383 #393 #394  Autotools: Improve handling of user (C|CPP|CXX|LD)FLAGS,
238*cc68614dSXin LI                    e.g. ensure that they have the last word over flags added
239*cc68614dSXin LI                    while running ./configure
240*cc68614dSXin LI            #360  CMake: Create libexpatw.{dll,so} and expatw.pc (with emphasis
241*cc68614dSXin LI                    on suffix "w") with -DEXPAT_CHAR_TYPE=(ushort|wchar_t)
242*cc68614dSXin LI            #360  CMake: Detect and deny unsupported build combinations
243*cc68614dSXin LI                    involving -DEXPAT_CHAR_TYPE=(ushort|wchar_t)
244*cc68614dSXin LI            #360  CMake: Install pre-compiled shipped xmlwf.1 manpage in case
245*cc68614dSXin LI                    of -DEXPAT_BUILD_DOCS=OFF
246*cc68614dSXin LI  #375 #380 #419  CMake: Fix use of Expat by means of add_subdirectory
247*cc68614dSXin LI       #407 #408  CMake: Keep expat target name constant at "expat"
248*cc68614dSXin LI                    (i.e. refrain from using the target name to control
249*cc68614dSXin LI                    build artifact filenames)
250*cc68614dSXin LI            #385  CMake: Fix compilation with -DEXPAT_SHARED_LIBS=OFF for
251*cc68614dSXin LI                    Windows
252*cc68614dSXin LI                  CMake: Expose man page compilation as target "xmlwf-manpage"
253*cc68614dSXin LI       #413 #414  CMake: Introduce option EXPAT_BUILD_PKGCONFIG
254*cc68614dSXin LI                    to control generation of pkg-config file "expat.pc"
255*cc68614dSXin LI            #424  CMake: Add minimalistic support for building binary packages
256*cc68614dSXin LI                    with CMake target "package"; based on CPack
257*cc68614dSXin LI            #366  CMake: Add option -DEXPAT_OSSFUZZ_BUILD=(ON|OFF) with
258*cc68614dSXin LI                    default OFF to build fuzzer code against OSS-Fuzz and
259*cc68614dSXin LI                    related environment variable LIB_FUZZING_ENGINE
260*cc68614dSXin LI            #354  Fix testsuite for -DEXPAT_DTD=OFF and -DEXPAT_NS=OFF, each
261*cc68614dSXin LI    #354 #355 ..
262*cc68614dSXin LI       #356 #412  Address compiler warnings
263*cc68614dSXin LI       #368 #369  Address pngcheck warnings with doc/*.png images
264*cc68614dSXin LI            #425  Version info bumped from 7:11:6 to 7:12:6
265*cc68614dSXin LI
266*cc68614dSXin LI        Special thanks to:
267*cc68614dSXin LI            asavah
268*cc68614dSXin LI            Ben Wagner
269*cc68614dSXin LI            Bhargava Shastry
270*cc68614dSXin LI            Frank Landgraf
271*cc68614dSXin LI            Jeffrey Walton
272*cc68614dSXin LI            Joe Orton
273*cc68614dSXin LI            Kleber Tarcísio
274*cc68614dSXin LI            Ma Lin
275*cc68614dSXin LI            Maciej Sroczyński
276*cc68614dSXin LI            Mohammed Khajapasha
277*cc68614dSXin LI            Vadim Zeitlin
278*cc68614dSXin LI                 and
279*cc68614dSXin LI            Cppcheck 2.0 and the Cppcheck team
280*cc68614dSXin LI
281*cc68614dSXin LIRelease 2.2.9 Wed September 25 2019
2826b2c1e49SXin LI        Other changes:
2836b2c1e49SXin LI                  examples: Drop executable bits from elements.c
2846b2c1e49SXin LI            #349  Windows: Change the name of the Windows DLLs from expat*.dll
2856b2c1e49SXin LI                    to libexpat*.dll once more (regression from 2.2.8, first
2866b2c1e49SXin LI                    fixed in 1.95.3, issue #61 on SourceForge today,
2876b2c1e49SXin LI                    was issue #432456 back then); needs a fix due
2886b2c1e49SXin LI                    case-insensitive file systems on Windows and the fact that
2896b2c1e49SXin LI                    Perl's XML::Parser::Expat compiles into Expat.dll.
2906b2c1e49SXin LI            #347  Windows: Only define _CRT_RAND_S if not defined
2916b2c1e49SXin LI                  Version info bumped from 7:10:6 to 7:11:6
2926b2c1e49SXin LI
2936b2c1e49SXin LI        Special thanks to:
2946b2c1e49SXin LI            Ben Wagner
2956b2c1e49SXin LI
296*cc68614dSXin LIRelease 2.2.8 Fri September 13 2019
2976b2c1e49SXin LI        Security fixes:
2986b2c1e49SXin LI       #317 #318  CVE-2019-15903 -- Fix heap overflow triggered by
2996b2c1e49SXin LI                    XML_GetCurrentLineNumber (or XML_GetCurrentColumnNumber),
3006b2c1e49SXin LI                    and deny internal entities closing the doctype;
3016b2c1e49SXin LI                    fixed in commit c20b758c332d9a13afbbb276d30db1d183a85d43
3026b2c1e49SXin LI
3036b2c1e49SXin LI        Bug fixes:
3046b2c1e49SXin LI            #240  Fix cases where XML_StopParser did not have any effect
3056b2c1e49SXin LI                    when called from inside of an end element handler
3066b2c1e49SXin LI            #341  xmlwf: Fix exit code for operation without "-d DIRECTORY";
3076b2c1e49SXin LI                    previously, only "-d DIRECTORY" would give you a proper
3086b2c1e49SXin LI                    exit code:
3096b2c1e49SXin LI                      # xmlwf -d . <<<'<not well-formed>' 2>/dev/null ; echo $?
3106b2c1e49SXin LI                      2
3116b2c1e49SXin LI                      # xmlwf <<<'<not well-formed>' 2>/dev/null ; echo $?
3126b2c1e49SXin LI                      0
3136b2c1e49SXin LI                    Now both cases return exit code 2.
3146b2c1e49SXin LI
3156b2c1e49SXin LI        Other changes:
3166b2c1e49SXin LI       #299 #302  Windows: Replace LoadLibrary hack to access
3176b2c1e49SXin LI                    unofficial API function SystemFunction036 (RtlGenRandom)
3186b2c1e49SXin LI                    by using official API function rand_s (needs WinXP+)
3196b2c1e49SXin LI            #325  Windows: Drop support for Visual Studio <=7.1/2003
3206b2c1e49SXin LI                    and document supported compilers in README.md
3216b2c1e49SXin LI            #286  Windows: Remove COM code from xmlwf; in case it turns
3226b2c1e49SXin LI                    out needed later, there will be a dedicated repository
3236b2c1e49SXin LI                    below https://github.com/libexpat/ for that code
3246b2c1e49SXin LI            #322  Windows: Remove explicit MSVC solution and project files.
3256b2c1e49SXin LI                    You can generate Visual Studio solution files through
3266b2c1e49SXin LI                    CMake, e.g.: cmake -G"Visual Studio 15 2017" .
3276b2c1e49SXin LI            #338  xmlwf: Make "xmlwf -h" help output more friendly
3286b2c1e49SXin LI            #339  examples: Improve elements.c
3296b2c1e49SXin LI       #244 #264  Autotools: Add argument --enable-xml-attr-info
3306b2c1e49SXin LI       #239 #301  Autotools: Add arguments
3316b2c1e49SXin LI                    --with-getrandom
3326b2c1e49SXin LI                    --without-getrandom
3336b2c1e49SXin LI                    --with-sys-getrandom
3346b2c1e49SXin LI                    --without-sys-getrandom
3356b2c1e49SXin LI       #312 #343  Autotools: Fix linking issues with "./configure LD=clang"
3366b2c1e49SXin LI                  Autotools: Fix "make run-xmltest" for out-of-source builds
3376b2c1e49SXin LI       #329 #336  CMake: Pull all options from Expat <=2.2.7 into namespace
3386b2c1e49SXin LI                    prefix EXPAT_ with the exception of DOCBOOK_TO_MAN:
3396b2c1e49SXin LI                    - BUILD_doc            -> EXPAT_BUILD_DOCS (plural)
3406b2c1e49SXin LI                    - BUILD_examples       -> EXPAT_BUILD_EXAMPLES
3416b2c1e49SXin LI                    - BUILD_shared         -> EXPAT_SHARED_LIBS
3426b2c1e49SXin LI                    - BUILD_tests          -> EXPAT_BUILD_TESTS
3436b2c1e49SXin LI                    - BUILD_tools          -> EXPAT_BUILD_TOOLS
3446b2c1e49SXin LI                    - DOCBOOK_TO_MAN       -> DOCBOOK_TO_MAN (unchanged)
3456b2c1e49SXin LI                    - INSTALL              -> EXPAT_ENABLE_INSTALL
3466b2c1e49SXin LI                    - MSVC_USE_STATIC_CRT  -> EXPAT_MSVC_STATIC_CRT
3476b2c1e49SXin LI                    - USE_libbsd           -> EXPAT_WITH_LIBBSD
3486b2c1e49SXin LI                    - WARNINGS_AS_ERRORS   -> EXPAT_WARNINGS_AS_ERRORS
3496b2c1e49SXin LI                    - XML_CONTEXT_BYTES    -> EXPAT_CONTEXT_BYTES
3506b2c1e49SXin LI                    - XML_DEV_URANDOM      -> EXPAT_DEV_URANDOM
3516b2c1e49SXin LI                    - XML_DTD              -> EXPAT_DTD
3526b2c1e49SXin LI                    - XML_NS               -> EXPAT_NS
3536b2c1e49SXin LI                    - XML_UNICODE          -> EXPAT_CHAR_TYPE=ushort (!)
3546b2c1e49SXin LI                    - XML_UNICODE_WCHAR_T  -> EXPAT_CHAR_TYPE=wchar_t (!)
3556b2c1e49SXin LI       #244 #264  CMake: Add argument -DEXPAT_ATTR_INFO=(ON|OFF),
3566b2c1e49SXin LI                    default OFF
3576b2c1e49SXin LI            #326  CMake: Add argument -DEXPAT_LARGE_SIZE=(ON|OFF),
3586b2c1e49SXin LI                    default OFF
3596b2c1e49SXin LI            #328  CMake: Add argument -DEXPAT_MIN_SIZE=(ON|OFF),
3606b2c1e49SXin LI                    default OFF
3616b2c1e49SXin LI       #239 #277  CMake: Add arguments
3626b2c1e49SXin LI                    -DEXPAT_WITH_GETRANDOM=(ON|OFF|AUTO), default AUTO
3636b2c1e49SXin LI                    -DEXPAT_WITH_SYS_GETRANDOM=(ON|OFF|AUTO), default AUTO
3646b2c1e49SXin LI            #326  CMake: Install expat_config.h to include directory
3656b2c1e49SXin LI            #326  CMake: Generate and install configuration files for
3666b2c1e49SXin LI                    future find_package(expat [..] CONFIG [..])
3676b2c1e49SXin LI                  CMake: Now produces a summary of applied configuration
3686b2c1e49SXin LI                  CMake: Require C++ compiler only when tests are enabled
3696b2c1e49SXin LI            #330  CMake: Fix compilation for 16bit character types,
3706b2c1e49SXin LI                    i.e. ex -DXML_UNICODE=ON (and ex -DXML_UNICODE_WCHAR_T=ON)
3716b2c1e49SXin LI            #265  CMake: Fix linking with MinGW
3726b2c1e49SXin LI            #330  CMake: Add full support for MinGW; to enable, use
3736b2c1e49SXin LI                    -DCMAKE_TOOLCHAIN_FILE=[expat]/cmake/mingw-toolchain.cmake
3746b2c1e49SXin LI            #330  CMake: Port "make run-xmltest" from GNU Autotools to CMake
3756b2c1e49SXin LI            #316  CMake: Windows: Make binary postfix match MSVC
3766b2c1e49SXin LI                    Old: expat[d].lib
3776b2c1e49SXin LI                    New: expat[w][d][MD|MT].lib
3786b2c1e49SXin LI                  CMake: Migrate files from Windows to Unix line endings
3796b2c1e49SXin LI            #308  CMake: Integrate OSS-Fuzz fuzzers, option
3806b2c1e49SXin LI                    -DEXPAT_BUILD_FUZZERS=(ON|OFF), default OFF
3816b2c1e49SXin LI             #14  Drop an OpenVMS support leftover
3826b2c1e49SXin LI    #235 #268 ..
3836b2c1e49SXin LI    #270 #310 ..
3846b2c1e49SXin LI  #313 #331 #333  Address compiler warnings
3856b2c1e49SXin LI    #282 #283 ..
3866b2c1e49SXin LI       #284 #285  Address cppcheck warnings
3876b2c1e49SXin LI       #294 #295  Address Clang Static Analyzer warnings
3886b2c1e49SXin LI        #24 #293  Mass-apply clang-format 9 (and ensure conformance during CI)
3896b2c1e49SXin LI                  Version info bumped from 7:9:6 to 7:10:6
3906b2c1e49SXin LI
3916b2c1e49SXin LI        Special thanks to:
3926b2c1e49SXin LI            David Loffredo
3936b2c1e49SXin LI            Joonun Jang
3946b2c1e49SXin LI            Kishore Kunche
3956b2c1e49SXin LI            Marco Maggi
3966b2c1e49SXin LI            Mitch Phillips
397*cc68614dSXin LI            Mohammed Khajapasha
3986b2c1e49SXin LI            Rolf Ade
3996b2c1e49SXin LI            xantares
4006b2c1e49SXin LI            Zhongyuan Zhou
4016b2c1e49SXin LI
4026b2c1e49SXin LIRelease 2.2.7 Wed June 19 2019
4036b2c1e49SXin LI        Security fixes:
4046b2c1e49SXin LI       #186 #262  CVE-2018-20843 -- Fix extraction of namespace prefixes from
4056b2c1e49SXin LI                    XML names; XML names with multiple colons could end up in
4066b2c1e49SXin LI                    the wrong namespace, and take a high amount of RAM and CPU
4076b2c1e49SXin LI                    resources while processing, opening the door to
4086b2c1e49SXin LI                    use for denial-of-service attacks
4096b2c1e49SXin LI
4106b2c1e49SXin LI        Other changes:
4116b2c1e49SXin LI       #195 #197  Autotools/CMake: Utilize -fvisibility=hidden to stop
4126b2c1e49SXin LI                    exporting non-API symbols
4136b2c1e49SXin LI            #227  Autotools: Add --without-examples and --without-tests
4146b2c1e49SXin LI            #228  Autotools: Modernize configure.ac
4156b2c1e49SXin LI       #245 #246  Autotools: Fix check for -fvisibility=hidden for Clang
4166b2c1e49SXin LI       #247 #248  Autotools: Fix compilation for lack of docbook2x-man
4176b2c1e49SXin LI       #236 #258  Autotools: Produce .tar.{gz,lz,xz} release archives
4186b2c1e49SXin LI            #212  CMake: Make libdir of pkgconfig expat.pc support multilib
4196b2c1e49SXin LI       #158 #263  CMake: Build man page in PROJECT_BINARY_DIR not _SOURCE_DIR
4206b2c1e49SXin LI            #219  Remove fallback to bcopy, assume that memmove(3) exists
4216b2c1e49SXin LI            #257  Use portable "/usr/bin/env bash" shebang (e.g. for OpenBSD)
4226b2c1e49SXin LI            #243  Windows: Fix syntax of .def module definition files
4236b2c1e49SXin LI                  Version info bumped from 7:8:6 to 7:9:6
4246b2c1e49SXin LI
4256b2c1e49SXin LI        Special thanks to:
4266b2c1e49SXin LI            Benjamin Peterson
4276b2c1e49SXin LI            Caolán McNamara
4286b2c1e49SXin LI            Hanno Böck
4296b2c1e49SXin LI            KangLin
4306b2c1e49SXin LI            Kishore Kunche
4316b2c1e49SXin LI            Marco Maggi
4326b2c1e49SXin LI            Rhodri James
4336b2c1e49SXin LI            Sebastian Dröge
4346b2c1e49SXin LI            userwithuid
4356b2c1e49SXin LI            Yury Gribov
4366b2c1e49SXin LI
4370a48773fSEric van GyzenRelease 2.2.6 Sun August 12 2018
4380a48773fSEric van Gyzen        Bug fixes:
4390a48773fSEric van Gyzen       #170 #206  Avoid doing arithmetic with NULL pointers in XML_GetBuffer
4400a48773fSEric van Gyzen       #204 #205  Fix 2.2.5 regression with suspend-resume while parsing
4410a48773fSEric van Gyzen                    a document like '<root/>'
4420a48773fSEric van Gyzen
4430a48773fSEric van Gyzen        Other changes:
4440a48773fSEric van Gyzen       #165 #168  Autotools: Fix docbook-related configure syntax error
4450a48773fSEric van Gyzen            #166  Autotools: Avoid grep option `-q` for Solaris
4460a48773fSEric van Gyzen            #167  Autotools: Support
4470a48773fSEric van Gyzen                    ./configure DOCBOOK_TO_MAN="xmlto man --skip-validation"
4480a48773fSEric van Gyzen       #159 #167  Autotools: Support DOCBOOK_TO_MAN command which produces
4490a48773fSEric van Gyzen                    xmlwf.1 rather than XMLWF.1; also covers case insensitive
4500a48773fSEric van Gyzen                    file systems
4510a48773fSEric van Gyzen            #181  Autotools: Drop -rpath option passed to libtool
4520a48773fSEric van Gyzen            #188  Autotools: Detect and deny SGML docbook2man as ours is XML
4530a48773fSEric van Gyzen            #188  Autotools/CMake: Support command db2x_docbook2man as well
4540a48773fSEric van Gyzen            #174  CMake: Introduce option WARNINGS_AS_ERRORS, defaults to OFF
4550a48773fSEric van Gyzen       #184 #185  CMake: Introduce option MSVC_USE_STATIC_CRT, defaults to OFF
4560a48773fSEric van Gyzen       #207 #208  CMake: Introduce option XML_UNICODE and XML_UNICODE_WCHAR_T,
4570a48773fSEric van Gyzen                    both defaulting to OFF
4580a48773fSEric van Gyzen            #175  CMake: Prefer check_symbol_exists over check_function_exists
4590a48773fSEric van Gyzen            #176  CMake: Create the same pkg-config file as with GNU Autotools
4600a48773fSEric van Gyzen       #178 #179  CMake: Use GNUInstallDirs module to set proper defaults for
4610a48773fSEric van Gyzen                    install directories
4620a48773fSEric van Gyzen            #208  CMake: Utilize expat_config.h.cmake for XML_DEV_URANDOM
4630a48773fSEric van Gyzen            #180  Windows: Fix compilation of test suite for Visual Studio 2008
4640a48773fSEric van Gyzen  #131 #173 #202  Address compiler warnings
4650a48773fSEric van Gyzen  #187 #190 #200  Fix miscellaneous typos
4660a48773fSEric van Gyzen                  Version info bumped from 7:7:6 to 7:8:6
4670a48773fSEric van Gyzen
4680a48773fSEric van Gyzen        Special thanks to:
4690a48773fSEric van Gyzen            Anton Maklakov
4700a48773fSEric van Gyzen            Benjamin Peterson
4710a48773fSEric van Gyzen            Brad King
4720a48773fSEric van Gyzen            Franek Korta
4730a48773fSEric van Gyzen            Frank Rast
4740a48773fSEric van Gyzen            Joe Orton
4750a48773fSEric van Gyzen            luzpaz
4760a48773fSEric van Gyzen            Pedro Vicente
4770a48773fSEric van Gyzen            Rainer Jung
4780a48773fSEric van Gyzen            Rhodri James
4790a48773fSEric van Gyzen            Rolf Ade
4800a48773fSEric van Gyzen            Rolf Eike Beer
4810a48773fSEric van Gyzen            Thomas Beutlich
4820a48773fSEric van Gyzen            Tomasz Kłoczko
4830a48773fSEric van Gyzen
4840a48773fSEric van GyzenRelease 2.2.5 Tue October 31 2017
4850a48773fSEric van Gyzen        Bug fixes:
4860a48773fSEric van Gyzen              #8  If the parser runs out of memory, make sure its internal
4870a48773fSEric van Gyzen                    state reflects the memory it actually has, not the memory
4880a48773fSEric van Gyzen                    it wanted to have.
4890a48773fSEric van Gyzen             #11  The default handler wasn't being called when it should for
4900a48773fSEric van Gyzen                    a SYSTEM or PUBLIC doctype if an entity declaration handler
4910a48773fSEric van Gyzen                    was registered.
4920a48773fSEric van Gyzen       #137 #138  Fix a case of mistakenly reported parsing success where
4930a48773fSEric van Gyzen                    XML_StopParser was called from an element handler
4940a48773fSEric van Gyzen            #162  Function XML_ErrorString was returning NULL rather than
4950a48773fSEric van Gyzen                    a message for code XML_ERROR_INVALID_ARGUMENT
4960a48773fSEric van Gyzen                    introduced with release 2.2.1
4970a48773fSEric van Gyzen
4980a48773fSEric van Gyzen        Other changes:
4990a48773fSEric van Gyzen            #106  xmlwf: Add argument -N adding notation declarations
5000a48773fSEric van Gyzen        #75 #106  Test suite: Resolve expected failure cases where xmlwf
5010a48773fSEric van Gyzen                    output was incomplete
5020a48773fSEric van Gyzen            #127  Windows: Fix test suite compilation
5030a48773fSEric van Gyzen       #126 #127  Windows: Fix compilation for Visual Studio 2012
5040a48773fSEric van Gyzen                  Windows: Upgrade shipped project files to Visual Studio 2017
5050a48773fSEric van Gyzen        #33 #132  tests: Mass-fix compilation for XML_UNICODE_WCHAR_T
5060a48773fSEric van Gyzen            #129  examples: Fix compilation for XML_UNICODE_WCHAR_T
5070a48773fSEric van Gyzen            #130  benchmark: Fix compilation for XML_UNICODE_WCHAR_T
5080a48773fSEric van Gyzen            #144  xmlwf: Fix compilation for XML_UNICODE_WCHAR_T; still needs
5090a48773fSEric van Gyzen                    Windows or MinGW for 2-byte wchar_t
5100a48773fSEric van Gyzen              #9  Address two Clang Static Analyzer false positives
5110a48773fSEric van Gyzen             #59  Resolve troublesome macros hiding parser struct membership
5120a48773fSEric van Gyzen                    and dereferencing that pointer
5130a48773fSEric van Gyzen              #6  Resolve superfluous internal malloc/realloc switch
5140a48773fSEric van Gyzen       #153 #155  Improve docbook2x-man detection
5150a48773fSEric van Gyzen            #160  Undefine NDEBUG in the test suite (rather than rejecting it)
5160a48773fSEric van Gyzen            #161  Address compiler warnings
5170a48773fSEric van Gyzen                  Version info bumped from 7:6:6 to 7:7:6
5180a48773fSEric van Gyzen
5190a48773fSEric van Gyzen        Special thanks to:
5200a48773fSEric van Gyzen            Benbuck Nason
5210a48773fSEric van Gyzen            Hans Wennborg
5220a48773fSEric van Gyzen            José Gutiérrez de la Concha
5230a48773fSEric van Gyzen            Pedro Monreal Gonzalez
5240a48773fSEric van Gyzen            Rhodri James
5250a48773fSEric van Gyzen            Rolf Ade
5260a48773fSEric van Gyzen            Stephen Groat
5270a48773fSEric van Gyzen                 and
5280a48773fSEric van Gyzen            Core Infrastructure Initiative
5290a48773fSEric van Gyzen
5300a48773fSEric van GyzenRelease 2.2.4 Sat August 19 2017
5310a48773fSEric van Gyzen        Bug fixes:
5320a48773fSEric van Gyzen            #115  Fix copying of partial characters for UTF-8 input
5330a48773fSEric van Gyzen
5340a48773fSEric van Gyzen        Other changes:
5350a48773fSEric van Gyzen            #109  Fix "make check" for non-x86 architectures that default
5360a48773fSEric van Gyzen                    to unsigned type char (-128..127 rather than 0..255)
5370a48773fSEric van Gyzen            #109  coverage.sh: Cover -funsigned-char
5380a48773fSEric van Gyzen                  Autotools: Introduce --without-xmlwf argument
5390a48773fSEric van Gyzen             #65  Autotools: Replace handwritten Makefile with GNU Automake
5400a48773fSEric van Gyzen             #43  CMake: Auto-detect high quality entropy extractors, add new
5410a48773fSEric van Gyzen                    option USE_libbsd=ON to use arc4random_buf of libbsd
5420a48773fSEric van Gyzen             #74  CMake: Add -fno-strict-aliasing only where supported
5430a48773fSEric van Gyzen            #114  CMake: Always honor manually set BUILD_* options
5440a48773fSEric van Gyzen            #114  CMake: Compile man page if docbook2x-man is available, only
5450a48773fSEric van Gyzen            #117  Include file tests/xmltest.log.expected in source tarball
5460a48773fSEric van Gyzen                    (required for "make run-xmltest")
5470a48773fSEric van Gyzen            #117  Include (existing) Visual Studio 2013 files in source tarball
5480a48773fSEric van Gyzen                  Improve test suite error output
5490a48773fSEric van Gyzen            #111  Fix some typos in documentation
5500a48773fSEric van Gyzen                  Version info bumped from 7:5:6 to 7:6:6
5510a48773fSEric van Gyzen
5520a48773fSEric van Gyzen        Special thanks to:
5530a48773fSEric van Gyzen            Jakub Wilk
5540a48773fSEric van Gyzen            Joe Orton
5550a48773fSEric van Gyzen            Lin Tian
5560a48773fSEric van Gyzen            Rolf Eike Beer
5570a48773fSEric van Gyzen
5580a48773fSEric van GyzenRelease 2.2.3 Wed August 2 2017
5590a48773fSEric van Gyzen        Security fixes:
5600a48773fSEric van Gyzen             #82  CVE-2017-11742 -- Windows: Fix DLL hijacking vulnerability
5610a48773fSEric van Gyzen                    using Steve Holme's LoadLibrary wrapper for/of cURL
5620a48773fSEric van Gyzen
5630a48773fSEric van Gyzen        Bug fixes:
5640a48773fSEric van Gyzen             #85  Fix a dangling pointer issue related to realloc
5650a48773fSEric van Gyzen
5660a48773fSEric van Gyzen        Other changes:
5670a48773fSEric van Gyzen                  Increase code coverage
5680a48773fSEric van Gyzen             #91  Linux: Allow getrandom to fail if nonblocking pool has not
5690a48773fSEric van Gyzen                    yet been initialized and read /dev/urandom then, instead.
5700a48773fSEric van Gyzen                    This is in line with what recent Python does.
5710a48773fSEric van Gyzen             #81  Pre-10.7/Lion macOS: Support entropy from arc4random
5720a48773fSEric van Gyzen             #86  Check that a UTF-16 encoding in an XML declaration has the
5730a48773fSEric van Gyzen                    right endianness
5740a48773fSEric van Gyzen        #4 #5 #7  Recover correctly when some reallocations fail
5750a48773fSEric van Gyzen                  Repair "./configure && make" for systems without any
5760a48773fSEric van Gyzen                    provider of high quality entropy
5770a48773fSEric van Gyzen                    and try reading /dev/urandom on those
5780a48773fSEric van Gyzen                  Ensure that user-defined character encodings have converter
5790a48773fSEric van Gyzen                    functions when they are needed
5800a48773fSEric van Gyzen                  Fix mis-leading description of argument -c in xmlwf.1
5810a48773fSEric van Gyzen                  Rely on macro HAVE_ARC4RANDOM_BUF (rather than __CloudABI__)
5820a48773fSEric van Gyzen                    for CloudABI
5830a48773fSEric van Gyzen            #100  Fix use of SIPHASH_MAIN in siphash.h
5840a48773fSEric van Gyzen             #23  Test suite: Fix memory leaks
5850a48773fSEric van Gyzen                  Version info bumped from 7:4:6 to 7:5:6
5860a48773fSEric van Gyzen
5870a48773fSEric van Gyzen        Special thanks to:
5880a48773fSEric van Gyzen            Chanho Park
5890a48773fSEric van Gyzen            Joe Orton
5900a48773fSEric van Gyzen            Pascal Cuoq
5910a48773fSEric van Gyzen            Rhodri James
5920a48773fSEric van Gyzen            Simon McVittie
5930a48773fSEric van Gyzen            Vadim Zeitlin
5940a48773fSEric van Gyzen            Viktor Szakats
5950a48773fSEric van Gyzen                 and
5960a48773fSEric van Gyzen            Core Infrastructure Initiative
5970a48773fSEric van Gyzen
5980a48773fSEric van GyzenRelease 2.2.2 Wed July 12 2017
5990a48773fSEric van Gyzen        Security fixes:
6000a48773fSEric van Gyzen             #43  Protect against compilation without any source of high
6010a48773fSEric van Gyzen                    quality entropy enabled, e.g. with CMake build system;
6020a48773fSEric van Gyzen                    commit ff0207e6076e9828e536b8d9cd45c9c92069b895
6030a48773fSEric van Gyzen             #60  Windows with _UNICODE:
6040a48773fSEric van Gyzen                    Unintended use of LoadLibraryW with a non-wide string
6050a48773fSEric van Gyzen                    resulted in failure to load advapi32.dll and degradation
6060a48773fSEric van Gyzen                    in quality of used entropy when compiled with _UNICODE for
6070a48773fSEric van Gyzen                    Windows; you can launch existing binaries with
6080a48773fSEric van Gyzen                    EXPAT_ENTROPY_DEBUG=1 in the environment to inspect the
6090a48773fSEric van Gyzen                    quality of entropy used during runtime; commits
6100a48773fSEric van Gyzen                    * 95b95032f907ef1cd17ee7a9a1768010a825d61d
6110a48773fSEric van Gyzen                    * 73a5a2e9c081f49f2d775cf7ced864158b68dc80
6120a48773fSEric van Gyzen   [MOX-006]      Fix non-NULL parser parameter validation in XML_Parse;
6130a48773fSEric van Gyzen                    resulted in NULL dereference, previously;
6140a48773fSEric van Gyzen                    commit ac256dafdffc9622ab0dc2c62fcecb0dfcfa71fe
6150a48773fSEric van Gyzen
6160a48773fSEric van Gyzen        Bug fixes:
6170a48773fSEric van Gyzen             #69  Fix improper use of unsigned long long integer literals
6180a48773fSEric van Gyzen
6190a48773fSEric van Gyzen        Other changes:
6200a48773fSEric van Gyzen             #73  Start requiring a C99 compiler
6210a48773fSEric van Gyzen             #49  Fix "==" Bashism in configure script
6220a48773fSEric van Gyzen             #50  Fix too eager getrandom detection for Debian GNU/kFreeBSD
6230a48773fSEric van Gyzen             #52    and macOS
6240a48773fSEric van Gyzen             #51  Address lack of stdint.h in Visual Studio 2003 to 2008
6250a48773fSEric van Gyzen             #58  Address compile warnings
6260a48773fSEric van Gyzen             #68  Fix "./buildconf.sh && ./configure" for some versions
6270a48773fSEric van Gyzen                    of Dash for /bin/sh
6280a48773fSEric van Gyzen             #72  CMake: Ease use of Expat in context of a parent project
6290a48773fSEric van Gyzen                    with multiple CMakeLists.txt files
6300a48773fSEric van Gyzen             #72  CMake: Resolve mistaken executable permissions
6310a48773fSEric van Gyzen             #76  Address compile warning with -DNDEBUG (not recommended!)
6320a48773fSEric van Gyzen             #77  Address compile warning about macro redefinition
6330a48773fSEric van Gyzen
6340a48773fSEric van Gyzen        Special thanks to:
6350a48773fSEric van Gyzen            Alexander Bluhm
6360a48773fSEric van Gyzen            Ben Boeckel
6370a48773fSEric van Gyzen            Cătălin Răceanu
6380a48773fSEric van Gyzen            Kerin Millar
6390a48773fSEric van Gyzen            László Böszörményi
6400a48773fSEric van Gyzen            S. P. Zeidler
6410a48773fSEric van Gyzen            Segev Finer
6420a48773fSEric van Gyzen            Václav Slavík
6430a48773fSEric van Gyzen            Victor Stinner
6440a48773fSEric van Gyzen            Viktor Szakats
6450a48773fSEric van Gyzen                 and
6460a48773fSEric van Gyzen            Radically Open Security
6470a48773fSEric van Gyzen
6480a48773fSEric van GyzenRelease 2.2.1 Sat June 17 2017
6490a48773fSEric van Gyzen        Security fixes:
6500a48773fSEric van Gyzen                  CVE-2017-9233 -- External entity infinite loop DoS
6510a48773fSEric van Gyzen                    Details: https://libexpat.github.io/doc/cve-2017-9233/
6520a48773fSEric van Gyzen                    Commit c4bf96bb51dd2a1b0e185374362ee136fe2c9d7f
6530a48773fSEric van Gyzen   [MOX-002]      CVE-2016-9063 -- Detect integer overflow; commit
6540a48773fSEric van Gyzen                    d4f735b88d9932bd5039df2335eefdd0723dbe20
6550a48773fSEric van Gyzen                    (Fixed version of existing downstream patches!)
6560a48773fSEric van Gyzen   (SF.net) #539  Fix regression from fix to CVE-2016-0718 cutting off
6570a48773fSEric van Gyzen                    longer tag names; commits
6580a48773fSEric van Gyzen                    * 896b6c1fd3b842f377d1b62135dccf0a579cf65d
6590a48773fSEric van Gyzen                    * af507cef2c93cb8d40062a0abe43a4f4e9158fb2
6600a48773fSEric van Gyzen             #16    * 0dbbf43fdb20f593ddf4fa1ff67288000dd4a7fd
6610a48773fSEric van Gyzen             #25  More integer overflow detection (function poolGrow); commits
6620a48773fSEric van Gyzen                    * 810b74e4703dcfdd8f404e3cb177d44684775143
6630a48773fSEric van Gyzen                    * 44178553f3539ce69d34abee77a05e879a7982ac
6640a48773fSEric van Gyzen   [MOX-002]      Detect overflow from len=INT_MAX call to XML_Parse; commits
6650a48773fSEric van Gyzen                    * 4be2cb5afcc018d996f34bbbce6374b7befad47f
6660a48773fSEric van Gyzen                    * 7e5b71b748491b6e459e5c9a1d090820f94544d8
6670a48773fSEric van Gyzen   [MOX-005] #30  Use high quality entropy for hash initialization:
6680a48773fSEric van Gyzen                    * arc4random_buf on BSD, systems with libbsd
6690a48773fSEric van Gyzen                      (when configured with --with-libbsd), CloudABI
6700a48773fSEric van Gyzen                    * RtlGenRandom on Windows XP / Server 2003 and later
6710a48773fSEric van Gyzen                    * getrandom on Linux 3.17+
6720a48773fSEric van Gyzen                    In a way, that's still part of CVE-2016-5300.
6730a48773fSEric van Gyzen                    https://github.com/libexpat/libexpat/pull/30/commits
6740a48773fSEric van Gyzen   [MOX-005]      For the low quality entropy extraction fallback code,
6750a48773fSEric van Gyzen                    the parser instance address can no longer leak, commit
6760a48773fSEric van Gyzen                    04ad658bd3079dd15cb60fc67087900f0ff4b083
6770a48773fSEric van Gyzen   [MOX-003]      Prevent use of uninitialised variable; commit
6780a48773fSEric van Gyzen   [MOX-004]        a4dc944f37b664a3ca7199c624a98ee37babdb4b
6790a48773fSEric van Gyzen                  Add missing parameter validation to public API functions
6800a48773fSEric van Gyzen                    and dedicated error code XML_ERROR_INVALID_ARGUMENT:
6810a48773fSEric van Gyzen   [MOX-006]        * NULL checks; commits
6820a48773fSEric van Gyzen                      * d37f74b2b7149a3a95a680c4c4cd2a451a51d60a (merge/many)
6830a48773fSEric van Gyzen                      * 9ed727064b675b7180c98cb3d4f75efba6966681
6840a48773fSEric van Gyzen                      * 6a747c837c50114dfa413994e07c0ba477be4534
6850a48773fSEric van Gyzen                    * Negative length (XML_Parse); commit
6860a48773fSEric van Gyzen   [MOX-002]          70db8d2538a10f4c022655d6895e4c3e78692e7f
6870a48773fSEric van Gyzen   [MOX-001] #35  Change hash algorithm to William Ahern's version of SipHash
6880a48773fSEric van Gyzen                    to go further with fixing CVE-2012-0876.
6890a48773fSEric van Gyzen                    https://github.com/libexpat/libexpat/pull/39/commits
6900a48773fSEric van Gyzen
6910a48773fSEric van Gyzen        Bug fixes:
6920a48773fSEric van Gyzen             #32  Fix sharing of hash salt across parsers;
6930a48773fSEric van Gyzen                    relevant where XML_ExternalEntityParserCreate is called
6940a48773fSEric van Gyzen                    prior to XML_Parse, in particular (e.g. FBReader)
6950a48773fSEric van Gyzen             #28  xmlwf: Auto-disable use of memory-mapping (and parsing
6960a48773fSEric van Gyzen                    as a single chunk) for files larger than ~1 GB (2^30 bytes)
6970a48773fSEric van Gyzen                    rather than failing with error "out of memory"
6980a48773fSEric van Gyzen              #3  Fix double free after malloc failure in DTD code; commit
6990a48773fSEric van Gyzen                    7ae9c3d3af433cd4defe95234eae7dc8ed15637f
7000a48773fSEric van Gyzen             #17  Fix memory leak on parser error for unbound XML attribute
7010a48773fSEric van Gyzen                    prefix with new namespaces defined in the same tag;
7020a48773fSEric van Gyzen                    found by Google's OSS-Fuzz; commits
7030a48773fSEric van Gyzen                    * 16f87daae5a16132e479e4f71862128c7a915c73
7040a48773fSEric van Gyzen                    * b47dbc9745932c160893d433220e462bd605f8cd
7050a48773fSEric van Gyzen                  xmlwf on Windows: Add missing calls to CloseHandle
7060a48773fSEric van Gyzen
7070a48773fSEric van Gyzen        New features:
7080a48773fSEric van Gyzen             #30  Introduced environment switch EXPAT_ENTROPY_DEBUG=1
7090a48773fSEric van Gyzen                    for runtime debugging of entropy extraction
7100a48773fSEric van Gyzen
7110a48773fSEric van Gyzen        Other changes:
7120a48773fSEric van Gyzen                  Increase code coverage
7130a48773fSEric van Gyzen             #33  Reject use of XML_UNICODE_WCHAR_T with sizeof(wchar_t) != 2;
7140a48773fSEric van Gyzen                    XML_UNICODE_WCHAR_T was never meant to be used outside
7150a48773fSEric van Gyzen                    of Windows; 4-byte wchar_t is common on Linux
7160a48773fSEric van Gyzen   (SF.net) #538  Start using -fno-strict-aliasing
7170a48773fSEric van Gyzen   (SF.net) #540  Support compilation against cloudlibc of CloudABI
7180a48773fSEric van Gyzen                  Allow MinGW cross-compilation
7190a48773fSEric van Gyzen   (SF.net) #534  CMake: Introduce option "BUILD_doc" (enabled by default)
7200a48773fSEric van Gyzen                    to bypass compilation of the xmlwf.1 man page
7210a48773fSEric van Gyzen   (SF.net)  pr2  CMake: Introduce option "INSTALL" (enabled by default)
7220a48773fSEric van Gyzen                    to bypass installation of expat files
7230a48773fSEric van Gyzen                  CMake: Fix ninja support
7240a48773fSEric van Gyzen                  Autotools: Add parameters --enable-xml-context [COUNT]
7250a48773fSEric van Gyzen                    and --disable-xml-context; default of context of 1024
7260a48773fSEric van Gyzen                    bytes enabled unchanged
7270a48773fSEric van Gyzen             #14  Drop AmigaOS 4.x code and includes
7280a48773fSEric van Gyzen             #14  Drop ancient build systems:
7290a48773fSEric van Gyzen                    * Borland C++ Builder
7300a48773fSEric van Gyzen                    * OpenVMS
7310a48773fSEric van Gyzen                    * Open Watcom
7320a48773fSEric van Gyzen                    * Visual Studio 6.0
7330a48773fSEric van Gyzen                    * Pre-X Mac OS (MPW Makefile)
7340a48773fSEric van Gyzen                    If you happen to rely on some of these, please get in
7350a48773fSEric van Gyzen                    touch for joining with maintenance.
7360a48773fSEric van Gyzen             #10  Move from WIN32 to _WIN32
7370a48773fSEric van Gyzen             #13  Fix "make run-xmltest" order instability
7380a48773fSEric van Gyzen                  Address compile warnings
7390a48773fSEric van Gyzen                  Bump version info from 7:2:6 to 7:3:6
7400a48773fSEric van Gyzen                  Add AUTHORS file
7410a48773fSEric van Gyzen
7420a48773fSEric van Gyzen        Infrastructure:
7430a48773fSEric van Gyzen              #1  Migrate from SourceForge to GitHub (except downloads):
7440a48773fSEric van Gyzen                    https://github.com/libexpat/
7450a48773fSEric van Gyzen              #1  Re-create http://libexpat.org/ project website
7460a48773fSEric van Gyzen                  Start utilizing Travis CI
7470a48773fSEric van Gyzen
7480a48773fSEric van Gyzen        Special thanks to:
7490a48773fSEric van Gyzen            Andy Wang
7500a48773fSEric van Gyzen            Don Lewis
7510a48773fSEric van Gyzen            Ed Schouten
7520a48773fSEric van Gyzen            Karl Waclawek
7530a48773fSEric van Gyzen            Pascal Cuoq
7540a48773fSEric van Gyzen            Rhodri James
7550a48773fSEric van Gyzen            Sergei Nikulov
7560a48773fSEric van Gyzen            Tobias Taschner
7570a48773fSEric van Gyzen            Viktor Szakats
7580a48773fSEric van Gyzen                 and
7590a48773fSEric van Gyzen            Core Infrastructure Initiative
7600a48773fSEric van Gyzen            Mozilla Foundation (MOSS Track 3: Secure Open Source)
7610a48773fSEric van Gyzen            Radically Open Security
7620a48773fSEric van Gyzen
763be8aff81SXin LIRelease 2.2.0 Tue June 21 2016
764be8aff81SXin LI        Security fixes:
765be8aff81SXin LI            #537  CVE-2016-0718 -- Fix crash on malformed input
766be8aff81SXin LI                  CVE-2016-4472 -- Improve insufficient fix to CVE-2015-1283 /
767be8aff81SXin LI                                   CVE-2015-2716 introduced with Expat 2.1.1
768be8aff81SXin LI            #499  CVE-2016-5300 -- Use more entropy for hash initialization
769be8aff81SXin LI                                   than the original fix to CVE-2012-0876
770be8aff81SXin LI            #519  CVE-2012-6702 -- Resolve troublesome internal call to srand
771be8aff81SXin LI                                   that was introduced with Expat 2.1.0
772be8aff81SXin LI                                   when addressing CVE-2012-0876 (issue #496)
773be8aff81SXin LI
774be8aff81SXin LI        Bug fixes:
775be8aff81SXin LI                  Fix uninitialized reads of size 1
776be8aff81SXin LI                    (e.g. in little2_updatePosition)
777be8aff81SXin LI                  Fix detection of UTF-8 character boundaries
778be8aff81SXin LI
779be8aff81SXin LI        Other changes:
780be8aff81SXin LI            #532  Fix compilation for Visual Studio 2010 (keyword "C99")
781be8aff81SXin LI                  Autotools: Resolve use of "$<" to better support bmake
782be8aff81SXin LI                  Autotools: Add QA script "qa.sh" (and make target "qa")
783be8aff81SXin LI                  Autotools: Respect CXXFLAGS if given
784be8aff81SXin LI                  Autotools: Fix "make run-xmltest"
785be8aff81SXin LI                  Autotools: Have "make run-xmltest" check for expected output
786be8aff81SXin LI             p90  CMake: Fix static build (BUILD_shared=OFF) on Windows
787be8aff81SXin LI            #536  CMake: Add soversion, support -DNO_SONAME=yes to bypass
788be8aff81SXin LI            #323  CMake: Add suffix "d" to differentiate debug from release
789be8aff81SXin LI                  CMake: Define WIN32 with CMake on Windows
790be8aff81SXin LI                  Annotate memory allocators for GCC
791be8aff81SXin LI                  Address all currently known compile warnings
792be8aff81SXin LI                  Make sure that API symbols remain visible despite
793be8aff81SXin LI                    -fvisibility=hidden
794be8aff81SXin LI                  Remove executable flag from source files
795be8aff81SXin LI                  Resolve COMPILED_FROM_DSP in favor of WIN32
796be8aff81SXin LI
797be8aff81SXin LI        Special thanks to:
798be8aff81SXin LI            Björn Lindahl
799be8aff81SXin LI            Christian Heimes
800be8aff81SXin LI            Cristian Rodríguez
801be8aff81SXin LI            Daniel Krügler
802be8aff81SXin LI            Gustavo Grieco
803be8aff81SXin LI            Karl Waclawek
804be8aff81SXin LI            László Böszörményi
805be8aff81SXin LI            Marco Grassi
806be8aff81SXin LI            Pascal Cuoq
807be8aff81SXin LI            Sergei Nikulov
808be8aff81SXin LI            Thomas Beutlich
809be8aff81SXin LI            Warren Young
810be8aff81SXin LI            Yann Droneaud
811be8aff81SXin LI
812be8aff81SXin LIRelease 2.1.1 Sat March 12 2016
813be8aff81SXin LI        Security fixes:
814be8aff81SXin LI            #582: CVE-2015-1283 - Multiple integer overflows in XML_GetBuffer
815be8aff81SXin LI
816be8aff81SXin LI        Bug fixes:
817be8aff81SXin LI            #502: Fix potential null pointer dereference
818be8aff81SXin LI            #520: Symbol XML_SetHashSalt was not exported
819be8aff81SXin LI            Output of "xmlwf -h" was incomplete
820be8aff81SXin LI
821be8aff81SXin LI        Other changes:
822be8aff81SXin LI            #503: Document behavior of calling XML_SetHashSalt with salt 0
823be8aff81SXin LI            Minor improvements to man page xmlwf(1)
824be8aff81SXin LI            Improvements to the experimental CMake build system
825be8aff81SXin LI            libtool now invoked with --verbose
826be8aff81SXin LI
827e3466a89SXin LIRelease 2.1.0 Sat March 24 2012
8280a48773fSEric van Gyzen        - Security fixes:
8290a48773fSEric van Gyzen          #2958794: CVE-2012-1148 - Memory leak in poolGrow.
8300a48773fSEric van Gyzen          #2895533: CVE-2012-1147 - Resource leak in readfilemap.c.
8310a48773fSEric van Gyzen          #3496608: CVE-2012-0876 - Hash DOS attack.
8320a48773fSEric van Gyzen          #2894085: CVE-2009-3560 - Buffer over-read and crash in big2_toUtf8().
8330a48773fSEric van Gyzen          #1990430: CVE-2009-3720 - Parser crash with special UTF-8 sequences.
834e3466a89SXin LI        - Bug Fixes:
835e3466a89SXin LI          #1742315: Harmful XML_ParserCreateNS suggestion.
836e3466a89SXin LI          #1785430: Expat build fails on linux-amd64 with gcc version>=4.1 -O3.
837e3466a89SXin LI          #1983953, 2517952, 2517962, 2649838:
838e3466a89SXin LI                Build modifications using autoreconf instead of buildconf.sh.
839e3466a89SXin LI          #2815947, #2884086: OBJEXT and EXEEXT support while building.
840e3466a89SXin LI          #2517938: xmlwf should return non-zero exit status if not well-formed.
841e3466a89SXin LI          #2517946: Wrong statement about XMLDecl in xmlwf.1 and xmlwf.sgml.
842e3466a89SXin LI          #2855609: Dangling positionPtr after error.
843e3466a89SXin LI          #2990652: CMake support.
844e3466a89SXin LI          #3010819: UNEXPECTED_STATE with a trailing "%" in entity value.
8450a48773fSEric van Gyzen          #3206497: Uninitialized memory returned from XML_Parse.
846e3466a89SXin LI          #3287849: make check fails on mingw-w64.
847e3466a89SXin LI        - Patches:
848e3466a89SXin LI          #1749198: pkg-config support.
849e3466a89SXin LI          #3010222: Fix for bug #3010819.
850e3466a89SXin LI          #3312568: CMake support.
851e3466a89SXin LI          #3446384: Report byte offsets for attr names and values.
852e3466a89SXin LI        - New Features / API changes:
853be8aff81SXin LI          Added new API member XML_SetHashSalt() that allows setting an initial
854e3466a89SXin LI                value (salt) for hash calculations. This is part of the fix for
855e3466a89SXin LI                bug #3496608 to randomize hash parameters.
856e3466a89SXin LI          When compiled with XML_ATTR_INFO defined, adds new API member
857e3466a89SXin LI                XML_GetAttributeInfo() that allows retrieving the byte
858e3466a89SXin LI                offsets for attribute names and values (patch #3446384).
859e3466a89SXin LI          Added CMake build system.
860e3466a89SXin LI                See bug #2990652 and patch #3312568.
861e3466a89SXin LI          Added run-benchmark target to Makefile.in - relies on testdata module
862e3466a89SXin LI                present in the same relative location as in the repository.
863e3466a89SXin LI
864220ed979SColeman KaneRelease 2.0.1 Tue June 5 2007
865e3466a89SXin LI        - Fixed bugs #1515266, #1515600: The character data handler's calling
866220ed979SColeman Kane          of XML_StopParser() was not handled properly; if the parser was
867220ed979SColeman Kane          stopped and the handler set to NULL, the parser would segfault.
868220ed979SColeman Kane        - Fixed bug #1690883: Expat failed on EBCDIC systems as it assumed
869220ed979SColeman Kane          some character constants to be ASCII encoded.
870220ed979SColeman Kane        - Minor cleanups of the test harness.
871220ed979SColeman Kane        - Fixed xmlwf bug #1513566: "out of memory" error on file size zero.
872220ed979SColeman Kane        - Fixed outline.c bug #1543233: missing a final XML_ParserFree() call.
873220ed979SColeman Kane        - Fixes and improvements for Windows platform:
874e3466a89SXin LI          bugs #1409451, #1476160, #1548182, #1602769, #1717322.
875220ed979SColeman Kane        - Build fixes for various platforms:
876220ed979SColeman Kane          HP-UX, Tru64, Solaris 9: patch #1437840, bug #1196180.
877220ed979SColeman Kane          All Unix: #1554618 (refreshed config.sub/config.guess).
878220ed979SColeman Kane                    #1490371, #1613457: support both, DESTDIR and INSTALL_ROOT,
879220ed979SColeman Kane                    without relying on GNU-Make specific features.
880220ed979SColeman Kane          #1647805: Patched configure.in to work better with Intel compiler.
881220ed979SColeman Kane        - Fixes to Makefile.in to have make check work correctly:
882220ed979SColeman Kane          bugs #1408143, #1535603, #1536684.
883220ed979SColeman Kane        - Added Open Watcom support: patch #1523242.
884220ed979SColeman Kane
885220ed979SColeman KaneRelease 2.0.0 Wed Jan 11 2006
886220ed979SColeman Kane        - We no longer use the "check" library for C unit testing; we
887220ed979SColeman Kane          always use the (partial) internal implementation of the API.
888220ed979SColeman Kane        - Report XML_NS setting via XML_GetFeatureList().
889220ed979SColeman Kane        - Fixed headers for use from C++.
890220ed979SColeman Kane        - XML_GetCurrentLineNumber() and  XML_GetCurrentColumnNumber()
891220ed979SColeman Kane          now return unsigned integers.
892220ed979SColeman Kane        - Added XML_LARGE_SIZE switch to enable 64-bit integers for
893220ed979SColeman Kane          byte indexes and line/column numbers.
894220ed979SColeman Kane        - Updated to use libtool 1.5.22 (the most recent).
895220ed979SColeman Kane        - Added support for AmigaOS.
896e3466a89SXin LI        - Some mostly minor bug fixes. SF issues include: #1006708,
897e3466a89SXin LI          #1021776, #1023646, #1114960, #1156398, #1221160, #1271642.
898220ed979SColeman Kane
899220ed979SColeman KaneRelease 1.95.8 Fri Jul 23 2004
900220ed979SColeman Kane        - Major new feature: suspend/resume.  Handlers can now request
901220ed979SColeman Kane          that a parse be suspended for later resumption or aborted
902220ed979SColeman Kane          altogether.  See "Temporarily Stopping Parsing" in the
903220ed979SColeman Kane          documentation for more details.
904220ed979SColeman Kane        - Some mostly minor bug fixes, but compilation should no
905220ed979SColeman Kane          longer generate warnings on most platforms.  SF issues
906e3466a89SXin LI          include: #827319, #840173, #846309, #888329, #896188, #923913,
907e3466a89SXin LI          #928113, #961698, #985192.
908220ed979SColeman Kane
909220ed979SColeman KaneRelease 1.95.7 Mon Oct 20 2003
910220ed979SColeman Kane        - Fixed enum XML_Status issue (reported on SourceForge many
911220ed979SColeman Kane          times), so compilers that are properly picky will be happy.
912220ed979SColeman Kane        - Introduced an XMLCALL macro to control the calling
913220ed979SColeman Kane          convention used by the Expat API; this macro should be used
914220ed979SColeman Kane          to annotate prototypes and definitions of callback
915220ed979SColeman Kane          implementations in code compiled with a calling convention
916220ed979SColeman Kane          other than the default convention for the host platform.
917220ed979SColeman Kane        - Improved ability to build without the configure-generated
918220ed979SColeman Kane          expat_config.h header.  This is useful for applications
919220ed979SColeman Kane          which embed Expat rather than linking in the library.
920e3466a89SXin LI        - Fixed a variety of bugs: see SF issues #458907, #609603,
921e3466a89SXin LI          #676844, #679754, #692878, #692964, #695401, #699323, #699487,
922e3466a89SXin LI          #820946.
923220ed979SColeman Kane        - Improved hash table lookups.
924220ed979SColeman Kane        - Added more regression tests and improved documentation.
925220ed979SColeman Kane
926220ed979SColeman KaneRelease 1.95.6 Tue Jan 28 2003
927220ed979SColeman Kane        - Added XML_FreeContentModel().
928220ed979SColeman Kane        - Added XML_MemMalloc(), XML_MemRealloc(), XML_MemFree().
929e3466a89SXin LI        - Fixed a variety of bugs: see SF issues #615606, #616863,
930e3466a89SXin LI          #618199, #653180, #673791.
931220ed979SColeman Kane        - Enhanced the regression test suite.
932e3466a89SXin LI        - Man page improvements: includes SF issue #632146.
933220ed979SColeman Kane
9345bb6a25fSPoul-Henning KampRelease 1.95.5 Fri Sep 6 2002
9355bb6a25fSPoul-Henning Kamp        - Added XML_UseForeignDTD() for improved SAX2 support.
9365bb6a25fSPoul-Henning Kamp        - Added XML_GetFeatureList().
9375bb6a25fSPoul-Henning Kamp        - Defined XML_Bool type and the values XML_TRUE and XML_FALSE.
9385bb6a25fSPoul-Henning Kamp        - Use an incomplete struct instead of a void* for the parser
9395bb6a25fSPoul-Henning Kamp          (may not retain).
9405bb6a25fSPoul-Henning Kamp        - Fixed UTF-8 decoding bug that caused legal UTF-8 to be rejected.
9415bb6a25fSPoul-Henning Kamp        - Finally fixed bug where default handler would report DTD
9425bb6a25fSPoul-Henning Kamp          events that were already handled by another handler.
943220ed979SColeman Kane          Initial patch contributed by Darryl Miles.
9445bb6a25fSPoul-Henning Kamp        - Removed unnecessary DllMain() function that caused static
9455bb6a25fSPoul-Henning Kamp          linking into a DLL to be difficult.
9465bb6a25fSPoul-Henning Kamp        - Added VC++ projects for building static libraries.
9475bb6a25fSPoul-Henning Kamp        - Reduced line-length for all source code and headers to be
9485bb6a25fSPoul-Henning Kamp          no longer than 80 characters, to help with AS/400 support.
9495bb6a25fSPoul-Henning Kamp        - Reduced memory copying during parsing (SF patch #600964).
950e3466a89SXin LI        - Fixed a variety of bugs: see SF issues #580793, #434664,
951e3466a89SXin LI          #483514, #580503, #581069, #584041, #584183, #584832, #585537,
952e3466a89SXin LI          #596555, #596678, #598352, #598944, #599715, #600479, #600971.
9535bb6a25fSPoul-Henning Kamp
9545bb6a25fSPoul-Henning KampRelease 1.95.4 Fri Jul 12 2002
9555bb6a25fSPoul-Henning Kamp        - Added support for VMS, contributed by Craig Berry.  See
9565bb6a25fSPoul-Henning Kamp          vms/README.vms for more information.
9575bb6a25fSPoul-Henning Kamp        - Added Mac OS (classic) support, with a makefile for MPW,
9585bb6a25fSPoul-Henning Kamp          contributed by Thomas Wegner and Daryle Walker.
9595bb6a25fSPoul-Henning Kamp        - Added Borland C++ Builder 5 / BCC 5.5 support, contributed
9605bb6a25fSPoul-Henning Kamp          by Patrick McConnell (SF patch #538032).
961e3466a89SXin LI        - Fixed a variety of bugs: see SF issues #441449, #563184,
962e3466a89SXin LI          #564342, #566334, #566901, #569461, #570263, #575168, #579196.
9635bb6a25fSPoul-Henning Kamp        - Made skippedEntityHandler conform to SAX2 (see source comment)
9645bb6a25fSPoul-Henning Kamp        - Re-implemented WFC: Entity Declared from XML 1.0 spec and
9655bb6a25fSPoul-Henning Kamp          added a new error "entity declared in parameter entity":
966e3466a89SXin LI          see SF bug report #569461 and SF patch #578161
9675bb6a25fSPoul-Henning Kamp        - Re-implemented section 5.1 from XML 1.0 spec:
968e3466a89SXin LI          see SF bug report #570263 and SF patch #578161
9695bb6a25fSPoul-Henning Kamp
9705bb6a25fSPoul-Henning KampRelease 1.95.3 Mon Jun 3 2002
9715bb6a25fSPoul-Henning Kamp        - Added a project to the MSVC workspace to create a wchar_t
9725bb6a25fSPoul-Henning Kamp          version of the library; the DLLs are named libexpatw.dll.
9735bb6a25fSPoul-Henning Kamp        - Changed the name of the Windows DLLs from expat.dll to
9745bb6a25fSPoul-Henning Kamp          libexpat.dll; this fixes SF bug #432456.
9755bb6a25fSPoul-Henning Kamp        - Added the XML_ParserReset() API function.
9765bb6a25fSPoul-Henning Kamp        - Fixed XML_SetReturnNSTriplet() to work for element names.
9775bb6a25fSPoul-Henning Kamp        - Made the XML_UNICODE builds usable (thanks, Karl!).
9785bb6a25fSPoul-Henning Kamp        - Allow xmlwf to read from standard input.
9795bb6a25fSPoul-Henning Kamp        - Install a man page for xmlwf on Unix systems.
980e3466a89SXin LI        - Fixed many bugs; see SF bug reports #231864, #461380, #464837,
981e3466a89SXin LI          #466885, #469226, #477667, #484419, #487840, #494749, #496505,
982e3466a89SXin LI          #547350.  Other bugs which we can't test as easily may also
9835bb6a25fSPoul-Henning Kamp          have been fixed, especially in the area of build support.
9845bb6a25fSPoul-Henning Kamp
9855bb6a25fSPoul-Henning KampRelease 1.95.2 Fri Jul 27 2001
9865bb6a25fSPoul-Henning Kamp        - More changes to make MSVC happy with the build; add a single
9875bb6a25fSPoul-Henning Kamp          workspace to support both the library and xmlwf application.
9885bb6a25fSPoul-Henning Kamp        - Added a Windows installer for Windows users; includes
9895bb6a25fSPoul-Henning Kamp          xmlwf.exe.
9905bb6a25fSPoul-Henning Kamp        - Added compile-time constants that can be used to determine the
9915bb6a25fSPoul-Henning Kamp          Expat version
9925bb6a25fSPoul-Henning Kamp        - Removed a lot of GNU-specific dependencies to aide portability
9935bb6a25fSPoul-Henning Kamp          among the various Unix flavors.
9945bb6a25fSPoul-Henning Kamp        - Fix the UTF-8 BOM bug.
9955bb6a25fSPoul-Henning Kamp        - Cleaned up warning messages for several compilers.
9965bb6a25fSPoul-Henning Kamp        - Added the -Wall, -Wstrict-prototypes options for GCC.
9975bb6a25fSPoul-Henning Kamp
9985bb6a25fSPoul-Henning KampRelease 1.95.1 Sun Oct 22 15:11:36 EDT 2000
9995bb6a25fSPoul-Henning Kamp        - Changes to get expat to build under Microsoft compiler
10005bb6a25fSPoul-Henning Kamp        - Removed all aborts and instead return an UNEXPECTED_STATE error.
10015bb6a25fSPoul-Henning Kamp        - Fixed a bug where a stray '%' in an entity value would cause an
10025bb6a25fSPoul-Henning Kamp          abort.
10035bb6a25fSPoul-Henning Kamp        - Defined XML_SetEndNamespaceDeclHandler. Thanks to Darryl Miles for
10045bb6a25fSPoul-Henning Kamp          finding this oversight.
10055bb6a25fSPoul-Henning Kamp        - Changed default patterns in lib/Makefile.in to fit non-GNU makes
10065bb6a25fSPoul-Henning Kamp          Thanks to robin@unrated.net for reporting and providing an
10075bb6a25fSPoul-Henning Kamp          account to test on.
10085bb6a25fSPoul-Henning Kamp        - The reference had the wrong label for XML_SetStartNamespaceDecl.
10095bb6a25fSPoul-Henning Kamp          Reported by an anonymous user.
10105bb6a25fSPoul-Henning Kamp
10115bb6a25fSPoul-Henning KampRelease 1.95.0 Fri Sep 29 2000
10125bb6a25fSPoul-Henning Kamp        - XML_ParserCreate_MM
10135bb6a25fSPoul-Henning Kamp                Allows you to set a memory management suite to replace the
10145bb6a25fSPoul-Henning Kamp                standard malloc,realloc, and free.
10155bb6a25fSPoul-Henning Kamp        - XML_SetReturnNSTriplet
10165bb6a25fSPoul-Henning Kamp                If you turn this feature on when namespace processing is in
10175bb6a25fSPoul-Henning Kamp                effect, then qualified, prefixed element and attribute names
10185bb6a25fSPoul-Henning Kamp                are returned as "uri|name|prefix" where '|' is whatever
10195bb6a25fSPoul-Henning Kamp                separator character is used in namespace processing.
10205bb6a25fSPoul-Henning Kamp        - Merged in features from perl-expat
10215bb6a25fSPoul-Henning Kamp                o XML_SetElementDeclHandler
10225bb6a25fSPoul-Henning Kamp                o XML_SetAttlistDeclHandler
10235bb6a25fSPoul-Henning Kamp                o XML_SetXmlDeclHandler
10245bb6a25fSPoul-Henning Kamp                o XML_SetEntityDeclHandler
10255bb6a25fSPoul-Henning Kamp                o StartDoctypeDeclHandler takes 3 additional parameters:
10265bb6a25fSPoul-Henning Kamp                        sysid, pubid, has_internal_subset
10275bb6a25fSPoul-Henning Kamp                o Many paired handler setters (like XML_SetElementHandler)
10285bb6a25fSPoul-Henning Kamp                  now have corresponding individual handler setters
10295bb6a25fSPoul-Henning Kamp                o XML_GetInputContext for getting the input context of
10305bb6a25fSPoul-Henning Kamp                  the current parse position.
10315bb6a25fSPoul-Henning Kamp        - Added reference material
10325bb6a25fSPoul-Henning Kamp        - Packaged into a distribution that builds a sharable library
1033