Changes 43 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866
  1. NOTE: We are looking for help with a few things:
  2. https://github.com/libexpat/libexpat/labels/help%20wanted
  3. If you can help, please get in touch. Thanks!
  4. Release 2.3.0 Thu March 25 2021
  5. Bug fixes:
  6. #438 When calling XML_ParseBuffer without a prior successful call to
  7. XML_GetBuffer as a user, no longer trigger undefined behavior
  8. (by adding an integer to a NULL pointer) but rather return
  9. XML_STATUS_ERROR and set the error code to (new) code
  10. XML_ERROR_NO_BUFFER. Found by UBSan (UndefinedBehaviorSanitizer)
  11. of Clang 11 (but not Clang 9).
  12. #444 xmlwf: Exit status 2 was used for both:
  13. - malformed input files (documented) and
  14. - invalid command-line arguments (undocumented).
  15. The case of invalid command-line arguments now
  16. has its own exit status 4, resolving the ambiguity.
  17. Other changes:
  18. #439 xmlwf: Add argument -k to allow continuing after
  19. non-fatal errors
  20. #439 xmlwf: Add section about exit status to the -h help output
  21. #422 #426 #447 Windows: Drop support for Visual Studio <=14.0/2015
  22. #434 Windows: CMake: Detect unsupported Visual Studio at
  23. configure time (rather than at compile time)
  24. #382 #428 testrunner: Make verbose mode (argument "-v") report
  25. about passed tests, and make default mode report about
  26. failures, as well.
  27. #442 CMake: Call "enable_language(CXX)" prior to tinkering
  28. with CMAKE_CXX_* variables
  29. #448 Document use of libexpat from a CMake-based project
  30. #451 Autotools: Install CMake files as generated by CMake 3.19.6
  31. so that users with "find_package(expat [..] CONFIG [..])"
  32. are served on distributions that are *not* using the CMake
  33. build system inside for libexpat packaging
  34. #436 #437 Autotools: Drop obsolescent macro AC_HEADER_STDC
  35. #450 #452 Autotools: Resolve use of obsolete macro AC_CONFIG_HEADER
  36. #441 Address compiler warnings
  37. #443 Version info bumped from 7:12:6 to 8:0:7
  38. due to addition of error code XML_ERROR_NO_BUFFER
  39. (see https://verbump.de/ for what these numbers do)
  40. Infrastructure:
  41. #435 #446 Replace Travis CI by GitHub Actions
  42. Special thanks to:
  43. Alexander Richardson
  44. Oleksandr Popovych
  45. Thomas Beutlich
  46. Tim Bray
  47. and
  48. Clang LeakSan, Clang 11 UBSan and the Clang team
  49. Release 2.2.10 Sat October 3 2020
  50. Bug fixes:
  51. #390 #395 #398 Fix undefined behavior during parsing caused by
  52. pointer arithmetic with NULL pointers
  53. #404 #405 Fix reading uninitialized variable during parsing
  54. #406 xmlwf: Add missing check for malloc NULL return
  55. Other changes:
  56. #396 Windows: Drop support for Visual Studio <=8.0/2005
  57. #409 Windows: Add missing file "Changes" to the installer
  58. to fix compilation with CMake from installed sources
  59. #403 xmlwf: Document exit codes in xmlwf manpage and
  60. exit with code 3 (rather than code 1) for output errors
  61. when used with "-d DIRECTORY"
  62. #356 #359 MinGW: Provide declaration of rand_s for mingwrt <5.3.0
  63. #383 #392 Autotools: Use -Werror while configure tests the compiler
  64. for supported compile flags to avoid false positives
  65. #383 #393 #394 Autotools: Improve handling of user (C|CPP|CXX|LD)FLAGS,
  66. e.g. ensure that they have the last word over flags added
  67. while running ./configure
  68. #360 CMake: Create libexpatw.{dll,so} and expatw.pc (with emphasis
  69. on suffix "w") with -DEXPAT_CHAR_TYPE=(ushort|wchar_t)
  70. #360 CMake: Detect and deny unsupported build combinations
  71. involving -DEXPAT_CHAR_TYPE=(ushort|wchar_t)
  72. #360 CMake: Install pre-compiled shipped xmlwf.1 manpage in case
  73. of -DEXPAT_BUILD_DOCS=OFF
  74. #375 #380 #419 CMake: Fix use of Expat by means of add_subdirectory
  75. #407 #408 CMake: Keep expat target name constant at "expat"
  76. (i.e. refrain from using the target name to control
  77. build artifact filenames)
  78. #385 CMake: Fix compilation with -DEXPAT_SHARED_LIBS=OFF for
  79. Windows
  80. CMake: Expose man page compilation as target "xmlwf-manpage"
  81. #413 #414 CMake: Introduce option EXPAT_BUILD_PKGCONFIG
  82. to control generation of pkg-config file "expat.pc"
  83. #424 CMake: Add minimalistic support for building binary packages
  84. with CMake target "package"; based on CPack
  85. #366 CMake: Add option -DEXPAT_OSSFUZZ_BUILD=(ON|OFF) with
  86. default OFF to build fuzzer code against OSS-Fuzz and
  87. related environment variable LIB_FUZZING_ENGINE
  88. #354 Fix testsuite for -DEXPAT_DTD=OFF and -DEXPAT_NS=OFF, each
  89. #354 #355 ..
  90. #356 #412 Address compiler warnings
  91. #368 #369 Address pngcheck warnings with doc/*.png images
  92. #425 Version info bumped from 7:11:6 to 7:12:6
  93. Special thanks to:
  94. asavah
  95. Ben Wagner
  96. Bhargava Shastry
  97. Frank Landgraf
  98. Jeffrey Walton
  99. Joe Orton
  100. Kleber Tarcísio
  101. Ma Lin
  102. Maciej Sroczyński
  103. Mohammed Khajapasha
  104. Vadim Zeitlin
  105. and
  106. Cppcheck 2.0 and the Cppcheck team
  107. Release 2.2.9 Wed September 25 2019
  108. Other changes:
  109. examples: Drop executable bits from elements.c
  110. #349 Windows: Change the name of the Windows DLLs from expat*.dll
  111. to libexpat*.dll once more (regression from 2.2.8, first
  112. fixed in 1.95.3, issue #61 on SourceForge today,
  113. was issue #432456 back then); needs a fix due
  114. case-insensitive file systems on Windows and the fact that
  115. Perl's XML::Parser::Expat compiles into Expat.dll.
  116. #347 Windows: Only define _CRT_RAND_S if not defined
  117. Version info bumped from 7:10:6 to 7:11:6
  118. Special thanks to:
  119. Ben Wagner
  120. Release 2.2.8 Fri September 13 2019
  121. Security fixes:
  122. #317 #318 CVE-2019-15903 -- Fix heap overflow triggered by
  123. XML_GetCurrentLineNumber (or XML_GetCurrentColumnNumber),
  124. and deny internal entities closing the doctype;
  125. fixed in commit c20b758c332d9a13afbbb276d30db1d183a85d43
  126. Bug fixes:
  127. #240 Fix cases where XML_StopParser did not have any effect
  128. when called from inside of an end element handler
  129. #341 xmlwf: Fix exit code for operation without "-d DIRECTORY";
  130. previously, only "-d DIRECTORY" would give you a proper
  131. exit code:
  132. # xmlwf -d . <<<'<not well-formed>' 2>/dev/null ; echo $?
  133. 2
  134. # xmlwf <<<'<not well-formed>' 2>/dev/null ; echo $?
  135. 0
  136. Now both cases return exit code 2.
  137. Other changes:
  138. #299 #302 Windows: Replace LoadLibrary hack to access
  139. unofficial API function SystemFunction036 (RtlGenRandom)
  140. by using official API function rand_s (needs WinXP+)
  141. #325 Windows: Drop support for Visual Studio <=7.1/2003
  142. and document supported compilers in README.md
  143. #286 Windows: Remove COM code from xmlwf; in case it turns
  144. out needed later, there will be a dedicated repository
  145. below https://github.com/libexpat/ for that code
  146. #322 Windows: Remove explicit MSVC solution and project files.
  147. You can generate Visual Studio solution files through
  148. CMake, e.g.: cmake -G"Visual Studio 15 2017" .
  149. #338 xmlwf: Make "xmlwf -h" help output more friendly
  150. #339 examples: Improve elements.c
  151. #244 #264 Autotools: Add argument --enable-xml-attr-info
  152. #239 #301 Autotools: Add arguments
  153. --with-getrandom
  154. --without-getrandom
  155. --with-sys-getrandom
  156. --without-sys-getrandom
  157. #312 #343 Autotools: Fix linking issues with "./configure LD=clang"
  158. Autotools: Fix "make run-xmltest" for out-of-source builds
  159. #329 #336 CMake: Pull all options from Expat <=2.2.7 into namespace
  160. prefix EXPAT_ with the exception of DOCBOOK_TO_MAN:
  161. - BUILD_doc -> EXPAT_BUILD_DOCS (plural)
  162. - BUILD_examples -> EXPAT_BUILD_EXAMPLES
  163. - BUILD_shared -> EXPAT_SHARED_LIBS
  164. - BUILD_tests -> EXPAT_BUILD_TESTS
  165. - BUILD_tools -> EXPAT_BUILD_TOOLS
  166. - DOCBOOK_TO_MAN -> DOCBOOK_TO_MAN (unchanged)
  167. - INSTALL -> EXPAT_ENABLE_INSTALL
  168. - MSVC_USE_STATIC_CRT -> EXPAT_MSVC_STATIC_CRT
  169. - USE_libbsd -> EXPAT_WITH_LIBBSD
  170. - WARNINGS_AS_ERRORS -> EXPAT_WARNINGS_AS_ERRORS
  171. - XML_CONTEXT_BYTES -> EXPAT_CONTEXT_BYTES
  172. - XML_DEV_URANDOM -> EXPAT_DEV_URANDOM
  173. - XML_DTD -> EXPAT_DTD
  174. - XML_NS -> EXPAT_NS
  175. - XML_UNICODE -> EXPAT_CHAR_TYPE=ushort (!)
  176. - XML_UNICODE_WCHAR_T -> EXPAT_CHAR_TYPE=wchar_t (!)
  177. #244 #264 CMake: Add argument -DEXPAT_ATTR_INFO=(ON|OFF),
  178. default OFF
  179. #326 CMake: Add argument -DEXPAT_LARGE_SIZE=(ON|OFF),
  180. default OFF
  181. #328 CMake: Add argument -DEXPAT_MIN_SIZE=(ON|OFF),
  182. default OFF
  183. #239 #277 CMake: Add arguments
  184. -DEXPAT_WITH_GETRANDOM=(ON|OFF|AUTO), default AUTO
  185. -DEXPAT_WITH_SYS_GETRANDOM=(ON|OFF|AUTO), default AUTO
  186. #326 CMake: Install expat_config.h to include directory
  187. #326 CMake: Generate and install configuration files for
  188. future find_package(expat [..] CONFIG [..])
  189. CMake: Now produces a summary of applied configuration
  190. CMake: Require C++ compiler only when tests are enabled
  191. #330 CMake: Fix compilation for 16bit character types,
  192. i.e. ex -DXML_UNICODE=ON (and ex -DXML_UNICODE_WCHAR_T=ON)
  193. #265 CMake: Fix linking with MinGW
  194. #330 CMake: Add full support for MinGW; to enable, use
  195. -DCMAKE_TOOLCHAIN_FILE=[expat]/cmake/mingw-toolchain.cmake
  196. #330 CMake: Port "make run-xmltest" from GNU Autotools to CMake
  197. #316 CMake: Windows: Make binary postfix match MSVC
  198. Old: expat[d].lib
  199. New: expat[w][d][MD|MT].lib
  200. CMake: Migrate files from Windows to Unix line endings
  201. #308 CMake: Integrate OSS-Fuzz fuzzers, option
  202. -DEXPAT_BUILD_FUZZERS=(ON|OFF), default OFF
  203. #14 Drop an OpenVMS support leftover
  204. #235 #268 ..
  205. #270 #310 ..
  206. #313 #331 #333 Address compiler warnings
  207. #282 #283 ..
  208. #284 #285 Address cppcheck warnings
  209. #294 #295 Address Clang Static Analyzer warnings
  210. #24 #293 Mass-apply clang-format 9 (and ensure conformance during CI)
  211. Version info bumped from 7:9:6 to 7:10:6
  212. Special thanks to:
  213. David Loffredo
  214. Joonun Jang
  215. Kishore Kunche
  216. Marco Maggi
  217. Mitch Phillips
  218. Mohammed Khajapasha
  219. Rolf Ade
  220. xantares
  221. Zhongyuan Zhou
  222. Release 2.2.7 Wed June 19 2019
  223. Security fixes:
  224. #186 #262 CVE-2018-20843 -- Fix extraction of namespace prefixes from
  225. XML names; XML names with multiple colons could end up in
  226. the wrong namespace, and take a high amount of RAM and CPU
  227. resources while processing, opening the door to
  228. use for denial-of-service attacks
  229. Other changes:
  230. #195 #197 Autotools/CMake: Utilize -fvisibility=hidden to stop
  231. exporting non-API symbols
  232. #227 Autotools: Add --without-examples and --without-tests
  233. #228 Autotools: Modernize configure.ac
  234. #245 #246 Autotools: Fix check for -fvisibility=hidden for Clang
  235. #247 #248 Autotools: Fix compilation for lack of docbook2x-man
  236. #236 #258 Autotools: Produce .tar.{gz,lz,xz} release archives
  237. #212 CMake: Make libdir of pkgconfig expat.pc support multilib
  238. #158 #263 CMake: Build man page in PROJECT_BINARY_DIR not _SOURCE_DIR
  239. #219 Remove fallback to bcopy, assume that memmove(3) exists
  240. #257 Use portable "/usr/bin/env bash" shebang (e.g. for OpenBSD)
  241. #243 Windows: Fix syntax of .def module definition files
  242. Version info bumped from 7:8:6 to 7:9:6
  243. Special thanks to:
  244. Benjamin Peterson
  245. Caolán McNamara
  246. Hanno Böck
  247. KangLin
  248. Kishore Kunche
  249. Marco Maggi
  250. Rhodri James
  251. Sebastian Dröge
  252. userwithuid
  253. Yury Gribov
  254. Release 2.2.6 Sun August 12 2018
  255. Bug fixes:
  256. #170 #206 Avoid doing arithmetic with NULL pointers in XML_GetBuffer
  257. #204 #205 Fix 2.2.5 regression with suspend-resume while parsing
  258. a document like '<root/>'
  259. Other changes:
  260. #165 #168 Autotools: Fix docbook-related configure syntax error
  261. #166 Autotools: Avoid grep option `-q` for Solaris
  262. #167 Autotools: Support
  263. ./configure DOCBOOK_TO_MAN="xmlto man --skip-validation"
  264. #159 #167 Autotools: Support DOCBOOK_TO_MAN command which produces
  265. xmlwf.1 rather than XMLWF.1; also covers case insensitive
  266. file systems
  267. #181 Autotools: Drop -rpath option passed to libtool
  268. #188 Autotools: Detect and deny SGML docbook2man as ours is XML
  269. #188 Autotools/CMake: Support command db2x_docbook2man as well
  270. #174 CMake: Introduce option WARNINGS_AS_ERRORS, defaults to OFF
  271. #184 #185 CMake: Introduce option MSVC_USE_STATIC_CRT, defaults to OFF
  272. #207 #208 CMake: Introduce option XML_UNICODE and XML_UNICODE_WCHAR_T,
  273. both defaulting to OFF
  274. #175 CMake: Prefer check_symbol_exists over check_function_exists
  275. #176 CMake: Create the same pkg-config file as with GNU Autotools
  276. #178 #179 CMake: Use GNUInstallDirs module to set proper defaults for
  277. install directories
  278. #208 CMake: Utilize expat_config.h.cmake for XML_DEV_URANDOM
  279. #180 Windows: Fix compilation of test suite for Visual Studio 2008
  280. #131 #173 #202 Address compiler warnings
  281. #187 #190 #200 Fix miscellaneous typos
  282. Version info bumped from 7:7:6 to 7:8:6
  283. Special thanks to:
  284. Anton Maklakov
  285. Benjamin Peterson
  286. Brad King
  287. Franek Korta
  288. Frank Rast
  289. Joe Orton
  290. luzpaz
  291. Pedro Vicente
  292. Rainer Jung
  293. Rhodri James
  294. Rolf Ade
  295. Rolf Eike Beer
  296. Thomas Beutlich
  297. Tomasz Kłoczko
  298. Release 2.2.5 Tue October 31 2017
  299. Bug fixes:
  300. #8 If the parser runs out of memory, make sure its internal
  301. state reflects the memory it actually has, not the memory
  302. it wanted to have.
  303. #11 The default handler wasn't being called when it should for
  304. a SYSTEM or PUBLIC doctype if an entity declaration handler
  305. was registered.
  306. #137 #138 Fix a case of mistakenly reported parsing success where
  307. XML_StopParser was called from an element handler
  308. #162 Function XML_ErrorString was returning NULL rather than
  309. a message for code XML_ERROR_INVALID_ARGUMENT
  310. introduced with release 2.2.1
  311. Other changes:
  312. #106 xmlwf: Add argument -N adding notation declarations
  313. #75 #106 Test suite: Resolve expected failure cases where xmlwf
  314. output was incomplete
  315. #127 Windows: Fix test suite compilation
  316. #126 #127 Windows: Fix compilation for Visual Studio 2012
  317. Windows: Upgrade shipped project files to Visual Studio 2017
  318. #33 #132 tests: Mass-fix compilation for XML_UNICODE_WCHAR_T
  319. #129 examples: Fix compilation for XML_UNICODE_WCHAR_T
  320. #130 benchmark: Fix compilation for XML_UNICODE_WCHAR_T
  321. #144 xmlwf: Fix compilation for XML_UNICODE_WCHAR_T; still needs
  322. Windows or MinGW for 2-byte wchar_t
  323. #9 Address two Clang Static Analyzer false positives
  324. #59 Resolve troublesome macros hiding parser struct membership
  325. and dereferencing that pointer
  326. #6 Resolve superfluous internal malloc/realloc switch
  327. #153 #155 Improve docbook2x-man detection
  328. #160 Undefine NDEBUG in the test suite (rather than rejecting it)
  329. #161 Address compiler warnings
  330. Version info bumped from 7:6:6 to 7:7:6
  331. Special thanks to:
  332. Benbuck Nason
  333. Hans Wennborg
  334. José Gutiérrez de la Concha
  335. Pedro Monreal Gonzalez
  336. Rhodri James
  337. Rolf Ade
  338. Stephen Groat
  339. and
  340. Core Infrastructure Initiative
  341. Release 2.2.4 Sat August 19 2017
  342. Bug fixes:
  343. #115 Fix copying of partial characters for UTF-8 input
  344. Other changes:
  345. #109 Fix "make check" for non-x86 architectures that default
  346. to unsigned type char (-128..127 rather than 0..255)
  347. #109 coverage.sh: Cover -funsigned-char
  348. Autotools: Introduce --without-xmlwf argument
  349. #65 Autotools: Replace handwritten Makefile with GNU Automake
  350. #43 CMake: Auto-detect high quality entropy extractors, add new
  351. option USE_libbsd=ON to use arc4random_buf of libbsd
  352. #74 CMake: Add -fno-strict-aliasing only where supported
  353. #114 CMake: Always honor manually set BUILD_* options
  354. #114 CMake: Compile man page if docbook2x-man is available, only
  355. #117 Include file tests/xmltest.log.expected in source tarball
  356. (required for "make run-xmltest")
  357. #117 Include (existing) Visual Studio 2013 files in source tarball
  358. Improve test suite error output
  359. #111 Fix some typos in documentation
  360. Version info bumped from 7:5:6 to 7:6:6
  361. Special thanks to:
  362. Jakub Wilk
  363. Joe Orton
  364. Lin Tian
  365. Rolf Eike Beer
  366. Release 2.2.3 Wed August 2 2017
  367. Security fixes:
  368. #82 CVE-2017-11742 -- Windows: Fix DLL hijacking vulnerability
  369. using Steve Holme's LoadLibrary wrapper for/of cURL
  370. Bug fixes:
  371. #85 Fix a dangling pointer issue related to realloc
  372. Other changes:
  373. Increase code coverage
  374. #91 Linux: Allow getrandom to fail if nonblocking pool has not
  375. yet been initialized and read /dev/urandom then, instead.
  376. This is in line with what recent Python does.
  377. #81 Pre-10.7/Lion macOS: Support entropy from arc4random
  378. #86 Check that a UTF-16 encoding in an XML declaration has the
  379. right endianness
  380. #4 #5 #7 Recover correctly when some reallocations fail
  381. Repair "./configure && make" for systems without any
  382. provider of high quality entropy
  383. and try reading /dev/urandom on those
  384. Ensure that user-defined character encodings have converter
  385. functions when they are needed
  386. Fix mis-leading description of argument -c in xmlwf.1
  387. Rely on macro HAVE_ARC4RANDOM_BUF (rather than __CloudABI__)
  388. for CloudABI
  389. #100 Fix use of SIPHASH_MAIN in siphash.h
  390. #23 Test suite: Fix memory leaks
  391. Version info bumped from 7:4:6 to 7:5:6
  392. Special thanks to:
  393. Chanho Park
  394. Joe Orton
  395. Pascal Cuoq
  396. Rhodri James
  397. Simon McVittie
  398. Vadim Zeitlin
  399. Viktor Szakats
  400. and
  401. Core Infrastructure Initiative
  402. Release 2.2.2 Wed July 12 2017
  403. Security fixes:
  404. #43 Protect against compilation without any source of high
  405. quality entropy enabled, e.g. with CMake build system;
  406. commit ff0207e6076e9828e536b8d9cd45c9c92069b895
  407. #60 Windows with _UNICODE:
  408. Unintended use of LoadLibraryW with a non-wide string
  409. resulted in failure to load advapi32.dll and degradation
  410. in quality of used entropy when compiled with _UNICODE for
  411. Windows; you can launch existing binaries with
  412. EXPAT_ENTROPY_DEBUG=1 in the environment to inspect the
  413. quality of entropy used during runtime; commits
  414. * 95b95032f907ef1cd17ee7a9a1768010a825d61d
  415. * 73a5a2e9c081f49f2d775cf7ced864158b68dc80
  416. [MOX-006] Fix non-NULL parser parameter validation in XML_Parse;
  417. resulted in NULL dereference, previously;
  418. commit ac256dafdffc9622ab0dc2c62fcecb0dfcfa71fe
  419. Bug fixes:
  420. #69 Fix improper use of unsigned long long integer literals
  421. Other changes:
  422. #73 Start requiring a C99 compiler
  423. #49 Fix "==" Bashism in configure script
  424. #50 Fix too eager getrandom detection for Debian GNU/kFreeBSD
  425. #52 and macOS
  426. #51 Address lack of stdint.h in Visual Studio 2003 to 2008
  427. #58 Address compile warnings
  428. #68 Fix "./buildconf.sh && ./configure" for some versions
  429. of Dash for /bin/sh
  430. #72 CMake: Ease use of Expat in context of a parent project
  431. with multiple CMakeLists.txt files
  432. #72 CMake: Resolve mistaken executable permissions
  433. #76 Address compile warning with -DNDEBUG (not recommended!)
  434. #77 Address compile warning about macro redefinition
  435. Special thanks to:
  436. Alexander Bluhm
  437. Ben Boeckel
  438. Cătălin Răceanu
  439. Kerin Millar
  440. László Böszörményi
  441. S. P. Zeidler
  442. Segev Finer
  443. Václav Slavík
  444. Victor Stinner
  445. Viktor Szakats
  446. and
  447. Radically Open Security
  448. Release 2.2.1 Sat June 17 2017
  449. Security fixes:
  450. CVE-2017-9233 -- External entity infinite loop DoS
  451. Details: https://libexpat.github.io/doc/cve-2017-9233/
  452. Commit c4bf96bb51dd2a1b0e185374362ee136fe2c9d7f
  453. [MOX-002] CVE-2016-9063 -- Detect integer overflow; commit
  454. d4f735b88d9932bd5039df2335eefdd0723dbe20
  455. (Fixed version of existing downstream patches!)
  456. (SF.net) #539 Fix regression from fix to CVE-2016-0718 cutting off
  457. longer tag names; commits
  458. * 896b6c1fd3b842f377d1b62135dccf0a579cf65d
  459. * af507cef2c93cb8d40062a0abe43a4f4e9158fb2
  460. #16 * 0dbbf43fdb20f593ddf4fa1ff67288000dd4a7fd
  461. #25 More integer overflow detection (function poolGrow); commits
  462. * 810b74e4703dcfdd8f404e3cb177d44684775143
  463. * 44178553f3539ce69d34abee77a05e879a7982ac
  464. [MOX-002] Detect overflow from len=INT_MAX call to XML_Parse; commits
  465. * 4be2cb5afcc018d996f34bbbce6374b7befad47f
  466. * 7e5b71b748491b6e459e5c9a1d090820f94544d8
  467. [MOX-005] #30 Use high quality entropy for hash initialization:
  468. * arc4random_buf on BSD, systems with libbsd
  469. (when configured with --with-libbsd), CloudABI
  470. * RtlGenRandom on Windows XP / Server 2003 and later
  471. * getrandom on Linux 3.17+
  472. In a way, that's still part of CVE-2016-5300.
  473. https://github.com/libexpat/libexpat/pull/30/commits
  474. [MOX-005] For the low quality entropy extraction fallback code,
  475. the parser instance address can no longer leak, commit
  476. 04ad658bd3079dd15cb60fc67087900f0ff4b083
  477. [MOX-003] Prevent use of uninitialised variable; commit
  478. [MOX-004] a4dc944f37b664a3ca7199c624a98ee37babdb4b
  479. Add missing parameter validation to public API functions
  480. and dedicated error code XML_ERROR_INVALID_ARGUMENT:
  481. [MOX-006] * NULL checks; commits
  482. * d37f74b2b7149a3a95a680c4c4cd2a451a51d60a (merge/many)
  483. * 9ed727064b675b7180c98cb3d4f75efba6966681
  484. * 6a747c837c50114dfa413994e07c0ba477be4534
  485. * Negative length (XML_Parse); commit
  486. [MOX-002] 70db8d2538a10f4c022655d6895e4c3e78692e7f
  487. [MOX-001] #35 Change hash algorithm to William Ahern's version of SipHash
  488. to go further with fixing CVE-2012-0876.
  489. https://github.com/libexpat/libexpat/pull/39/commits
  490. Bug fixes:
  491. #32 Fix sharing of hash salt across parsers;
  492. relevant where XML_ExternalEntityParserCreate is called
  493. prior to XML_Parse, in particular (e.g. FBReader)
  494. #28 xmlwf: Auto-disable use of memory-mapping (and parsing
  495. as a single chunk) for files larger than ~1 GB (2^30 bytes)
  496. rather than failing with error "out of memory"
  497. #3 Fix double free after malloc failure in DTD code; commit
  498. 7ae9c3d3af433cd4defe95234eae7dc8ed15637f
  499. #17 Fix memory leak on parser error for unbound XML attribute
  500. prefix with new namespaces defined in the same tag;
  501. found by Google's OSS-Fuzz; commits
  502. * 16f87daae5a16132e479e4f71862128c7a915c73
  503. * b47dbc9745932c160893d433220e462bd605f8cd
  504. xmlwf on Windows: Add missing calls to CloseHandle
  505. New features:
  506. #30 Introduced environment switch EXPAT_ENTROPY_DEBUG=1
  507. for runtime debugging of entropy extraction
  508. Other changes:
  509. Increase code coverage
  510. #33 Reject use of XML_UNICODE_WCHAR_T with sizeof(wchar_t) != 2;
  511. XML_UNICODE_WCHAR_T was never meant to be used outside
  512. of Windows; 4-byte wchar_t is common on Linux
  513. (SF.net) #538 Start using -fno-strict-aliasing
  514. (SF.net) #540 Support compilation against cloudlibc of CloudABI
  515. Allow MinGW cross-compilation
  516. (SF.net) #534 CMake: Introduce option "BUILD_doc" (enabled by default)
  517. to bypass compilation of the xmlwf.1 man page
  518. (SF.net) pr2 CMake: Introduce option "INSTALL" (enabled by default)
  519. to bypass installation of expat files
  520. CMake: Fix ninja support
  521. Autotools: Add parameters --enable-xml-context [COUNT]
  522. and --disable-xml-context; default of context of 1024
  523. bytes enabled unchanged
  524. #14 Drop AmigaOS 4.x code and includes
  525. #14 Drop ancient build systems:
  526. * Borland C++ Builder
  527. * OpenVMS
  528. * Open Watcom
  529. * Visual Studio 6.0
  530. * Pre-X Mac OS (MPW Makefile)
  531. If you happen to rely on some of these, please get in
  532. touch for joining with maintenance.
  533. #10 Move from WIN32 to _WIN32
  534. #13 Fix "make run-xmltest" order instability
  535. Address compile warnings
  536. Bump version info from 7:2:6 to 7:3:6
  537. Add AUTHORS file
  538. Infrastructure:
  539. #1 Migrate from SourceForge to GitHub (except downloads):
  540. https://github.com/libexpat/
  541. #1 Re-create http://libexpat.org/ project website
  542. Start utilizing Travis CI
  543. Special thanks to:
  544. Andy Wang
  545. Don Lewis
  546. Ed Schouten
  547. Karl Waclawek
  548. Pascal Cuoq
  549. Rhodri James
  550. Sergei Nikulov
  551. Tobias Taschner
  552. Viktor Szakats
  553. and
  554. Core Infrastructure Initiative
  555. Mozilla Foundation (MOSS Track 3: Secure Open Source)
  556. Radically Open Security
  557. Release 2.2.0 Tue June 21 2016
  558. Security fixes:
  559. #537 CVE-2016-0718 -- Fix crash on malformed input
  560. CVE-2016-4472 -- Improve insufficient fix to CVE-2015-1283 /
  561. CVE-2015-2716 introduced with Expat 2.1.1
  562. #499 CVE-2016-5300 -- Use more entropy for hash initialization
  563. than the original fix to CVE-2012-0876
  564. #519 CVE-2012-6702 -- Resolve troublesome internal call to srand
  565. that was introduced with Expat 2.1.0
  566. when addressing CVE-2012-0876 (issue #496)
  567. Bug fixes:
  568. Fix uninitialized reads of size 1
  569. (e.g. in little2_updatePosition)
  570. Fix detection of UTF-8 character boundaries
  571. Other changes:
  572. #532 Fix compilation for Visual Studio 2010 (keyword "C99")
  573. Autotools: Resolve use of "$<" to better support bmake
  574. Autotools: Add QA script "qa.sh" (and make target "qa")
  575. Autotools: Respect CXXFLAGS if given
  576. Autotools: Fix "make run-xmltest"
  577. Autotools: Have "make run-xmltest" check for expected output
  578. p90 CMake: Fix static build (BUILD_shared=OFF) on Windows
  579. #536 CMake: Add soversion, support -DNO_SONAME=yes to bypass
  580. #323 CMake: Add suffix "d" to differentiate debug from release
  581. CMake: Define WIN32 with CMake on Windows
  582. Annotate memory allocators for GCC
  583. Address all currently known compile warnings
  584. Make sure that API symbols remain visible despite
  585. -fvisibility=hidden
  586. Remove executable flag from source files
  587. Resolve COMPILED_FROM_DSP in favor of WIN32
  588. Special thanks to:
  589. Björn Lindahl
  590. Christian Heimes
  591. Cristian Rodríguez
  592. Daniel Krügler
  593. Gustavo Grieco
  594. Karl Waclawek
  595. László Böszörményi
  596. Marco Grassi
  597. Pascal Cuoq
  598. Sergei Nikulov
  599. Thomas Beutlich
  600. Warren Young
  601. Yann Droneaud
  602. Release 2.1.1 Sat March 12 2016
  603. Security fixes:
  604. #582: CVE-2015-1283 - Multiple integer overflows in XML_GetBuffer
  605. Bug fixes:
  606. #502: Fix potential null pointer dereference
  607. #520: Symbol XML_SetHashSalt was not exported
  608. Output of "xmlwf -h" was incomplete
  609. Other changes:
  610. #503: Document behavior of calling XML_SetHashSalt with salt 0
  611. Minor improvements to man page xmlwf(1)
  612. Improvements to the experimental CMake build system
  613. libtool now invoked with --verbose
  614. Release 2.1.0 Sat March 24 2012
  615. - Security fixes:
  616. #2958794: CVE-2012-1148 - Memory leak in poolGrow.
  617. #2895533: CVE-2012-1147 - Resource leak in readfilemap.c.
  618. #3496608: CVE-2012-0876 - Hash DOS attack.
  619. #2894085: CVE-2009-3560 - Buffer over-read and crash in big2_toUtf8().
  620. #1990430: CVE-2009-3720 - Parser crash with special UTF-8 sequences.
  621. - Bug Fixes:
  622. #1742315: Harmful XML_ParserCreateNS suggestion.
  623. #1785430: Expat build fails on linux-amd64 with gcc version>=4.1 -O3.
  624. #1983953, 2517952, 2517962, 2649838:
  625. Build modifications using autoreconf instead of buildconf.sh.
  626. #2815947, #2884086: OBJEXT and EXEEXT support while building.
  627. #2517938: xmlwf should return non-zero exit status if not well-formed.
  628. #2517946: Wrong statement about XMLDecl in xmlwf.1 and xmlwf.sgml.
  629. #2855609: Dangling positionPtr after error.
  630. #2990652: CMake support.
  631. #3010819: UNEXPECTED_STATE with a trailing "%" in entity value.
  632. #3206497: Uninitialized memory returned from XML_Parse.
  633. #3287849: make check fails on mingw-w64.
  634. - Patches:
  635. #1749198: pkg-config support.
  636. #3010222: Fix for bug #3010819.
  637. #3312568: CMake support.
  638. #3446384: Report byte offsets for attr names and values.
  639. - New Features / API changes:
  640. Added new API member XML_SetHashSalt() that allows setting an initial
  641. value (salt) for hash calculations. This is part of the fix for
  642. bug #3496608 to randomize hash parameters.
  643. When compiled with XML_ATTR_INFO defined, adds new API member
  644. XML_GetAttributeInfo() that allows retrieving the byte
  645. offsets for attribute names and values (patch #3446384).
  646. Added CMake build system.
  647. See bug #2990652 and patch #3312568.
  648. Added run-benchmark target to Makefile.in - relies on testdata module
  649. present in the same relative location as in the repository.
  650. Release 2.0.1 Tue June 5 2007
  651. - Fixed bugs #1515266, #1515600: The character data handler's calling
  652. of XML_StopParser() was not handled properly; if the parser was
  653. stopped and the handler set to NULL, the parser would segfault.
  654. - Fixed bug #1690883: Expat failed on EBCDIC systems as it assumed
  655. some character constants to be ASCII encoded.
  656. - Minor cleanups of the test harness.
  657. - Fixed xmlwf bug #1513566: "out of memory" error on file size zero.
  658. - Fixed outline.c bug #1543233: missing a final XML_ParserFree() call.
  659. - Fixes and improvements for Windows platform:
  660. bugs #1409451, #1476160, #1548182, #1602769, #1717322.
  661. - Build fixes for various platforms:
  662. HP-UX, Tru64, Solaris 9: patch #1437840, bug #1196180.
  663. All Unix: #1554618 (refreshed config.sub/config.guess).
  664. #1490371, #1613457: support both, DESTDIR and INSTALL_ROOT,
  665. without relying on GNU-Make specific features.
  666. #1647805: Patched configure.in to work better with Intel compiler.
  667. - Fixes to Makefile.in to have make check work correctly:
  668. bugs #1408143, #1535603, #1536684.
  669. - Added Open Watcom support: patch #1523242.
  670. Release 2.0.0 Wed Jan 11 2006
  671. - We no longer use the "check" library for C unit testing; we
  672. always use the (partial) internal implementation of the API.
  673. - Report XML_NS setting via XML_GetFeatureList().
  674. - Fixed headers for use from C++.
  675. - XML_GetCurrentLineNumber() and XML_GetCurrentColumnNumber()
  676. now return unsigned integers.
  677. - Added XML_LARGE_SIZE switch to enable 64-bit integers for
  678. byte indexes and line/column numbers.
  679. - Updated to use libtool 1.5.22 (the most recent).
  680. - Added support for AmigaOS.
  681. - Some mostly minor bug fixes. SF issues include: #1006708,
  682. #1021776, #1023646, #1114960, #1156398, #1221160, #1271642.
  683. Release 1.95.8 Fri Jul 23 2004
  684. - Major new feature: suspend/resume. Handlers can now request
  685. that a parse be suspended for later resumption or aborted
  686. altogether. See "Temporarily Stopping Parsing" in the
  687. documentation for more details.
  688. - Some mostly minor bug fixes, but compilation should no
  689. longer generate warnings on most platforms. SF issues
  690. include: #827319, #840173, #846309, #888329, #896188, #923913,
  691. #928113, #961698, #985192.
  692. Release 1.95.7 Mon Oct 20 2003
  693. - Fixed enum XML_Status issue (reported on SourceForge many
  694. times), so compilers that are properly picky will be happy.
  695. - Introduced an XMLCALL macro to control the calling
  696. convention used by the Expat API; this macro should be used
  697. to annotate prototypes and definitions of callback
  698. implementations in code compiled with a calling convention
  699. other than the default convention for the host platform.
  700. - Improved ability to build without the configure-generated
  701. expat_config.h header. This is useful for applications
  702. which embed Expat rather than linking in the library.
  703. - Fixed a variety of bugs: see SF issues #458907, #609603,
  704. #676844, #679754, #692878, #692964, #695401, #699323, #699487,
  705. #820946.
  706. - Improved hash table lookups.
  707. - Added more regression tests and improved documentation.
  708. Release 1.95.6 Tue Jan 28 2003
  709. - Added XML_FreeContentModel().
  710. - Added XML_MemMalloc(), XML_MemRealloc(), XML_MemFree().
  711. - Fixed a variety of bugs: see SF issues #615606, #616863,
  712. #618199, #653180, #673791.
  713. - Enhanced the regression test suite.
  714. - Man page improvements: includes SF issue #632146.
  715. Release 1.95.5 Fri Sep 6 2002
  716. - Added XML_UseForeignDTD() for improved SAX2 support.
  717. - Added XML_GetFeatureList().
  718. - Defined XML_Bool type and the values XML_TRUE and XML_FALSE.
  719. - Use an incomplete struct instead of a void* for the parser
  720. (may not retain).
  721. - Fixed UTF-8 decoding bug that caused legal UTF-8 to be rejected.
  722. - Finally fixed bug where default handler would report DTD
  723. events that were already handled by another handler.
  724. Initial patch contributed by Darryl Miles.
  725. - Removed unnecessary DllMain() function that caused static
  726. linking into a DLL to be difficult.
  727. - Added VC++ projects for building static libraries.
  728. - Reduced line-length for all source code and headers to be
  729. no longer than 80 characters, to help with AS/400 support.
  730. - Reduced memory copying during parsing (SF patch #600964).
  731. - Fixed a variety of bugs: see SF issues #580793, #434664,
  732. #483514, #580503, #581069, #584041, #584183, #584832, #585537,
  733. #596555, #596678, #598352, #598944, #599715, #600479, #600971.
  734. Release 1.95.4 Fri Jul 12 2002
  735. - Added support for VMS, contributed by Craig Berry. See
  736. vms/README.vms for more information.
  737. - Added Mac OS (classic) support, with a makefile for MPW,
  738. contributed by Thomas Wegner and Daryle Walker.
  739. - Added Borland C++ Builder 5 / BCC 5.5 support, contributed
  740. by Patrick McConnell (SF patch #538032).
  741. - Fixed a variety of bugs: see SF issues #441449, #563184,
  742. #564342, #566334, #566901, #569461, #570263, #575168, #579196.
  743. - Made skippedEntityHandler conform to SAX2 (see source comment)
  744. - Re-implemented WFC: Entity Declared from XML 1.0 spec and
  745. added a new error "entity declared in parameter entity":
  746. see SF bug report #569461 and SF patch #578161
  747. - Re-implemented section 5.1 from XML 1.0 spec:
  748. see SF bug report #570263 and SF patch #578161
  749. Release 1.95.3 Mon Jun 3 2002
  750. - Added a project to the MSVC workspace to create a wchar_t
  751. version of the library; the DLLs are named libexpatw.dll.
  752. - Changed the name of the Windows DLLs from expat.dll to
  753. libexpat.dll; this fixes SF bug #432456.
  754. - Added the XML_ParserReset() API function.
  755. - Fixed XML_SetReturnNSTriplet() to work for element names.
  756. - Made the XML_UNICODE builds usable (thanks, Karl!).
  757. - Allow xmlwf to read from standard input.
  758. - Install a man page for xmlwf on Unix systems.
  759. - Fixed many bugs; see SF bug reports #231864, #461380, #464837,
  760. #466885, #469226, #477667, #484419, #487840, #494749, #496505,
  761. #547350. Other bugs which we can't test as easily may also
  762. have been fixed, especially in the area of build support.
  763. Release 1.95.2 Fri Jul 27 2001
  764. - More changes to make MSVC happy with the build; add a single
  765. workspace to support both the library and xmlwf application.
  766. - Added a Windows installer for Windows users; includes
  767. xmlwf.exe.
  768. - Added compile-time constants that can be used to determine the
  769. Expat version
  770. - Removed a lot of GNU-specific dependencies to aide portability
  771. among the various Unix flavors.
  772. - Fix the UTF-8 BOM bug.
  773. - Cleaned up warning messages for several compilers.
  774. - Added the -Wall, -Wstrict-prototypes options for GCC.
  775. Release 1.95.1 Sun Oct 22 15:11:36 EDT 2000
  776. - Changes to get expat to build under Microsoft compiler
  777. - Removed all aborts and instead return an UNEXPECTED_STATE error.
  778. - Fixed a bug where a stray '%' in an entity value would cause an
  779. abort.
  780. - Defined XML_SetEndNamespaceDeclHandler. Thanks to Darryl Miles for
  781. finding this oversight.
  782. - Changed default patterns in lib/Makefile.in to fit non-GNU makes
  783. Thanks to [email protected] for reporting and providing an
  784. account to test on.
  785. - The reference had the wrong label for XML_SetStartNamespaceDecl.
  786. Reported by an anonymous user.
  787. Release 1.95.0 Fri Sep 29 2000
  788. - XML_ParserCreate_MM
  789. Allows you to set a memory management suite to replace the
  790. standard malloc,realloc, and free.
  791. - XML_SetReturnNSTriplet
  792. If you turn this feature on when namespace processing is in
  793. effect, then qualified, prefixed element and attribute names
  794. are returned as "uri|name|prefix" where '|' is whatever
  795. separator character is used in namespace processing.
  796. - Merged in features from perl-expat
  797. o XML_SetElementDeclHandler
  798. o XML_SetAttlistDeclHandler
  799. o XML_SetXmlDeclHandler
  800. o XML_SetEntityDeclHandler
  801. o StartDoctypeDeclHandler takes 3 additional parameters:
  802. sysid, pubid, has_internal_subset
  803. o Many paired handler setters (like XML_SetElementHandler)
  804. now have corresponding individual handler setters
  805. o XML_GetInputContext for getting the input context of
  806. the current parse position.
  807. - Added reference material
  808. - Packaged into a distribution that builds a sharable library