Changes 38 KB

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