Changes 41 KB

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