ChangeLog 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600
  1. NOTE: uriparser is looking for help with a few things:
  2. https://github.com/uriparser/uriparser/labels/help%20wanted
  3. If you can help, please get in touch. Thanks!
  4. 2022-10-05 -- 0.9.7
  5. * Fixed: Multiple issues with IPv6 and IPvFuture literal parsing
  6. (GitHub #146, GitHub #150)
  7. Thanks to Scallop Ye for the report and the pull request!
  8. * Fixed: Fix symbol visibility for -DBUILD_SHARED_LIBS=OFF (GitHub #139,
  9. GitHub #141); thanks to Mariusz Zaborski for the report!
  10. * Fixed: For MinGW, use size_t for inet_ntop declaration and fix macro
  11. checks for both MinGW and mingw-w64 (GitHub #131)
  12. * Fixed: Compiler warnings (GitHub #132, GitHub #152)
  13. * Improved: Use name UriConfig.h rather than generic config.h for the
  14. config header file to avoid name clashes and also include it through
  15. "UriConfig.h" with quotes rather than <UriConfig.h> so that it is found
  16. in quote path locations (GitHub #149)
  17. Thanks to Gaspard Petit for bringing this up!
  18. * Improved: Document need for UriConfig.h in UriMemory.c (GitHub #136)
  19. * Infrastructure: Add (support for) Visual Studio 17/2022 (GitHub #152)
  20. * Infrastructure: Drop (support for) Visual Studio <=14/2015 (GitHub #152)
  21. * Infrastructure: Update Clang from 13 to 15 (GitHub #143, GitHub #151)
  22. * Infrastructure: Make MinGW with 32bit Wine on Ubuntu 20.04 possible
  23. (GitHub #142, GitHub #144, GitHub #145)
  24. * Soname: 1:30:0 — see https://verbump.de/ for what these numbers do
  25. 2022-01-06 -- 0.9.6
  26. >>>>>>>>>>>>> SECURITY >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  27. * Fixed: [CVE-2021-46141]
  28. Fix a bug affecting both uriNormalizeSyntax* and uriMakeOwner*
  29. functions where the text range in .hostText would not be duped using
  30. malloc but remain unchanged (and hence "not owned") for URIs with
  31. an IPv4 or IPv6 address hostname; depending on how an application
  32. uses uriparser, this could lead the application into a use-after-free
  33. situation.
  34. As the second half, fix uriFreeUriMembers* functions that would not
  35. free .hostText memory for URIs with an IPv4 or IPv6 address host;
  36. also, calling uriFreeUriMembers* multiple times on a URI of this
  37. very nature would result in trying to free pointers to stack
  38. (rather than heap) memory (GitHub #121, GitHub #124)
  39. Commit 987b046e41f407d17c622e580fc82a5e834b4329
  40. Commit b1a34743bc1472e055d886e29e9b53f670eb3282
  41. * Fixed: [CVE-2021-46142]
  42. Fix functions uriNormalizeSyntax* for out-of-memory situations
  43. (i.e. malloc returning NULL) for URIs containing empty segments
  44. (any of user info, host text, query, or fragment) where previously
  45. pointers to stack (rather than heap) memory were freed (GitHub #122,
  46. GitHub #124)
  47. Commit c0483990e6b5b454f7c8752b36760cfcb0d093f5
  48. >>>>>>>>>>>>> SECURITY >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  49. * Fixed: CMake: Call "enable_language(CXX)" prior to tinkering with
  50. CMAKE_CXX_* variables (GitHub #110)
  51. Thanks to Alexander Richardson for the patch (originally at libexpat)
  52. * Fixed: CMake: Support absolute paths for both CMAKE_INSTALL_LIBDIR
  53. and CMAKE_INSTALL_INCLUDEDIR (GitHub #114)
  54. Thanks to Rafael Fontenelle for bringing this up (originally at libexpat)
  55. * Fixed: Windows: Address MSVC compiler warnings (GitHub #111, GitHub #113)
  56. * Fixed: Documentation: Space requirements for uriUriStringToUnixFilename
  57. did not take into account short form "file:/bin/bash" of RFC 8089 of 2017
  58. (with prefix "file:/" rather than "file:///") that uriparser supports
  59. since release 0.8.6 in 2018 (GitHub #118, GitHub #119)
  60. * Fixed: Compile error with MinGW GCC 9 related to a mismatched prototype
  61. for function inet_ntop (GitHub #117, GitHub #120)
  62. Thanks to Sandro Mani for the report!
  63. * Fixed: Compile warnings in test suite code (GitHub #120)
  64. * Improved: Respect variable ${CPP} in doc/preprocess.sh (GitHub #115)
  65. * Added: Test suite invocation for MinGW using Wine (GitHub #120)
  66. * Soname: 1:29:0 — see https://verbump.de/ for what these numbers do
  67. 2021-03-18 -- 0.9.5
  68. * Fixed: Fix a bug regarding section "5.2.4. Remove Dot Segments"
  69. of RFC 3986 that affected both normalization and reference resolution
  70. with regard to trailing slashes (GitHub #92, #97)
  71. Thanks to Dan Pape for the report!
  72. * Fixed: MinGW: Fix name of static library (GitHub #90)
  73. Thanks to SpaceIm for the patch and Sandro Mani for review!
  74. * Fixed: Use correct inline marker "__forceinline" for Intel C++ Compiler
  75. (GitHub #93)
  76. Thanks to jensenrichardson for the patch!
  77. * Fixed: Link against pthreads for (default) -DURIPARSER_BUILD_TESTS=ON
  78. (GitHub #99, #100)
  79. * Fixed: When integrated using CMake function add_subdirectory, installation
  80. could fail due to lack of prefix ${CMAKE_CURRENT_SOURCE_DIR} (GitHub #98)
  81. Thanks for the patch to Shehzan Mohammed!
  82. * Fixed: Addressed MSVC compile warning about lack of /EHsc when compiling
  83. the C++ test suite code (GitHub #102)
  84. * Fixed: Stopped misadvertising wide characters as Unicode support
  85. (GitHub #104)
  86. * Added: CMake option URIPARSER_WARNINGS_AS_ERRORS=(ON|OFF)
  87. to turn compile warnings into errors, defaults to "OFF" (GitHub #102)
  88. * Improved: pkg-config: Use ${prefix} and ${exec_prefix} to ease
  89. overriding variables using --define-variable=NAME=VALUE,
  90. e.g. as done on OpenWRT (GitHub #91)
  91. Thanks to Karel Kočí for the pull request!
  92. * Improved: Auto-detection of the qhelpgenerator command based on CMake
  93. package "Qt5Help" when available. CMake option "QHG_LOCATION" can still
  94. be used to enforce a specific location (GitHub #103)
  95. Thanks for his help to Andreas Sturmlechner!
  96. * Improved: Make documentation use pkg-config in example on how to
  97. check for uriparser from within configure.ac (GNU Autoconf)
  98. (GitHub #37, #106)
  99. * Improved: In testing code, add a missing 'extern "C"' (GitHub #109)
  100. Thanks to Jørgen Ibsen for the patch!
  101. * Soname: 1:28:0 — see https://verbump.de/ for what these numbers do
  102. 2020-05-31 -- 0.9.4
  103. * Fixed: testrunner: No longer crashes when compiled with NDEBUG (GitHub #67)
  104. * Fixed: CMake: Support GTest 1.8.0 (GitHub #68)
  105. Thanks to Ryan Schmidt for the related report!
  106. * Fixed: CMake: Use variable GTEST_INCLUDE_DIRS (with plural "S") rather than
  107. GTEST_INCLUDE_DIR (GitHub #79, #81)
  108. Thanks to Wouter Beek for the related report!
  109. * Improved: CMake: Send config summary to stdout, not stderr (GitHub #72)
  110. Thanks to Scott Donelan for the patch!
  111. * Improved: Make -DURIPARSER_BUILD_TESTS=OFF unlock compilation without
  112. a C++ compiler; thanks to Fabrice Fontaine for the patch! (GitHub #69)
  113. * Added: Functions to make UriUri[AW] instances independent of the original
  114. URI string (GitHub #77 and #78)
  115. New functions:
  116. uriMakeOwner[AW]
  117. uriMakeOwnerMm[AW]
  118. * Added: CMake option URIPARSER_ENABLE_INSTALL to toggle installation of
  119. files, defaults to "ON" (GitHub #74, #75)
  120. Thanks to Scott Donelan for the patch!
  121. * Soname: 1:27:0
  122. 2019-04-28 -- 0.9.3
  123. * Fixed: pkg-config: Fix version line in liburiparser.pc (GitHub #65)
  124. * Changed: MinGW: Add library version suffix to DLL name
  125. Thanks to Sandro Mani for the patch! (GitHub #63, #64)
  126. * Soname: 1:26:0
  127. 2019-04-22 -- 0.9.2
  128. * Fixed: Add missing extern "C" wrapper to UriIp4.h for use from C++
  129. * Fixed: Linking error for symbol defaultMemoryManager from mixing C and C++
  130. Thanks to Jørgen Ibsen for the report! (GitHub #52)
  131. * Fixed: Link errors on Haiku regarding function inet_ntop (GitHub #45)
  132. Thanks to Schrijvers Luc for the patch!
  133. * Fixed: Mark API functions with __declspec(dllexport) and
  134. __declspec(dllimport) in *.h files for Visual Studio (GitHub #60)
  135. * Improved: Use -fvisibility=hidden by default with supporting compilers,
  136. e.g. GCC and Clang (GitHub #60)
  137. * Changed: Migrated from GNU Autotools to CMake (GitHub #17, #47, #56, #59)
  138. Thanks for their support with the CMake migration to:
  139. - David Demelier
  140. - Jørgen Ibsen
  141. - KangLin
  142. - Kouhei Sutou
  143. - myd7349
  144. - Richard Hodges
  145. - Zachary Lund
  146. * Removed: All Windows-related build systems other than CMake
  147. * Soname: 1:25:0
  148. 2019-01-02 -- 0.9.1
  149. >>>>>>>>>>>>> SECURITY >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  150. * Fixed: [CVE-2018-20721]
  151. Out-of-bounds read in uriParse*Ex* for incomplete URIs with IPv6
  152. addresses with embedded IPv4 address, e.g. "//[::44.1";
  153. mitigated if passed parameter <afterLast> points to readable memory
  154. containing a '\0' byte.
  155. Commit cef25028de5ff872c2e1f0a6c562eb3ea9ecbce4
  156. Thanks to Joergen Ibsen for the report!
  157. >>>>>>>>>>>>> SECURITY >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  158. * Fixed: When parsing a malformed URI with an IPvFuture address
  159. (e.g. "http://[vA.123456" missing "]"), errorPos would point to the first
  160. character after "v" than the actual position of the error (here: the end
  161. of the string)
  162. * Fixed: uriToStringCharsRequired* reported 1 more byte than actually needed
  163. for IPv4 address URIs (GitHub #41); Thanks to @gyh007 for the patch!
  164. * Fixed: Compilation with MinGW
  165. Thanks to Sandro Mani for the patch!
  166. * Fixed: Drop use of asprintf from the test suite for MinGW (GitHub #40)
  167. * Improved: For parse errors, waterproof errorPos <= afterLast
  168. * Soname: 1:24:0
  169. 2018-10-27 -- 0.9.0
  170. >>>>>>>>>>>>> SECURITY >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  171. * Fixed: [CVE-2018-19198]
  172. Out-of-bounds write in uriComposeQuery* and uriComposeQueryEx*
  173. Commit 864f5d4c127def386dd5cc926ad96934b297f04e
  174. Thanks to Google Autofuzz team for the report!
  175. * Fixed: [CVE-2018-19199]
  176. Detect integer overflow in uriComposeQuery* and uriComposeQueryEx*
  177. Commit f76275d4a91b28d687250525d3a0c5509bbd666f
  178. Thanks to Google Autofuzz team for the report!
  179. * Fixed: [CVE-2018-19200]
  180. Protect uriResetUri* against acting on NULL input
  181. Commit f58c25069cf4a986fe17a80c5b38687e31feb539
  182. >>>>>>>>>>>>> SECURITY >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  183. * Fixed: Be fully compliant to C89 (Gitub #28) and C++98 in test code
  184. * Fixed: Fix off-by-one in uriComposeQueryCharsRequired* and ...Ex*
  185. Reported space requirements were 1 byte bigger than necessary
  186. * Changed: Marked as deprecated:
  187. Deprecated functions:
  188. uriNormalizeSyntaxMaskRequired[AW]
  189. uriParseUri[AW]
  190. uriParseUriEx[AW]
  191. * Added: Add convenience functions to ease user code to parse a single URI
  192. New functions:
  193. uriParseSingleUri[AW]
  194. uriParseSingleUriEx[AW]
  195. uriParseSingleUriExMm[AW]
  196. * Added: Support for custom memory managers (GitHub #26, #35), see Doxygen
  197. New functions (as extension of existing ones):
  198. uriAddBaseUriExMm[AW]
  199. uriComposeQueryMallocExMm[AW]
  200. uriDissectQueryMallocExMm[AW]
  201. uriFreeQueryListMm[AW]
  202. uriFreeUriMembersMm[AW]
  203. uriNormalizeSyntaxExMm[AW]
  204. uriParseSingleUriExMm[AW]
  205. uriRemoveBaseUriMm[AW]
  206. New functions (for convenience):
  207. uriCompleteMemoryManager
  208. uriEmulateCalloc
  209. uriEmulateReallocarray
  210. uriTestMemoryManager
  211. New error codes:
  212. URI_ERROR_MEMORY_MANAGER_FAULTY
  213. URI_ERROR_MEMORY_MANAGER_INCOMPLETE
  214. New types:
  215. UriFuncCalloc
  216. UriFuncFree
  217. UriFuncMalloc
  218. UriFuncRealloc
  219. UriFuncReallocarray
  220. UriMemoryManager
  221. * Added: Add non-void versions of uriNormalizeSyntaxMaskRequired*
  222. New functions:
  223. uriNormalizeSyntaxMaskRequiredEx[AW]
  224. * Changed: Migrate test suite from CppTest to GoogleTest 1.8.1
  225. * Improved: Make test suite free of memory leaks (GitHub #31)
  226. Thanks to AddressSanitizer!
  227. * Removed: Support for pointless define URI_SIZEDOWN (GitHub #29)
  228. Related configure option --enable-sizedown has also been removed.
  229. * Soname: 1:23:0
  230. 2018-08-18 -- 0.8.6
  231. * Fixed: Bad/NULL .hostText.afterLast when parsing certain rather pathologic
  232. but well-formed URIs with empty host (e.g. "//:%aa@") (GitHub #15)
  233. Thanks to Kurt Schwehr for the report!
  234. * Fixed: Fix uriRemoveBaseUri for case where scheme, host name,
  235. IPvFuture address or path segments of the source address were
  236. string prefixes of the related counterpart in the base URI.
  237. Thanks to Yang Yu for the patch! (GitHub #19, #20)
  238. * Fixed: Make UriStringToUnixFilename and UriStringToWindowsFilename
  239. support minimal representation a la RFC 8089, e.g. file:/bin/bash
  240. (compare to file:///bin/bash with three slashes) (GitHub #12, #14)
  241. Thanks to Zane van Iperen for the report!
  242. * Fixed: Documentation typos (GitHub #10, #11)
  243. Thanks to Graham Percival!
  244. * Improved: Made API docs of uriRemoveBaseUri more clear
  245. (related to GitHub #19)
  246. * Soname: 1:22:0
  247. 2018-02-07 -- 0.8.5
  248. * Changed: The uriparser project has moved from SourceForge to GitHub:
  249. Code + issue tracker: https://github.com/uriparser/uriparser
  250. New website: https://uriparser.github.io/
  251. Please update any links of yours, accordingly. Thank you!
  252. * Fixed: Memleak in out-of-memory clean-up code
  253. of URI normalization, related to SF.net bug #28.
  254. Thanks to Chris Hills for the report!
  255. * Fixed: Fix compilation of uriparse(1) on FreeBSD
  256. Thanks to Ed Schouten for the patch!
  257. * Fixed: Fix C90 compilation errors
  258. Thanks to Joel Cunningham for the patches!
  259. * Fixed: Space requirements documented for uriWindowsFilenameToUriStringA
  260. given URI "file://server1/file1.txt" (SF.net bug #31)
  261. Thanks to threedyd for the report!
  262. * Fixed: Compiler warnings
  263. Thanks to Joel Cunningham for the patches!
  264. * Fixed: Stop exporting internal function RemoveBaseUriImpl
  265. Thanks to Joel Cunningham for the report!
  266. * Fixed: API documentation front page no longer empty with Doxygen 1.8.13
  267. * Fixed: "make -C doc install" fixed for lack of .map files
  268. * Improved: Communicate that absolutePath is always URI_FALSE for URIs
  269. with a host in uriparse CLI tool output and Uri.h header
  270. (GitHub #2, SF.net #30)
  271. * Soname: 1:21:0
  272. 2015-10-12 -- 0.8.4
  273. * Fixed: Stack overflow on parsing malformed IPv6 addresses with
  274. more than eigtht quads. Thanks to Alexander Klink for the report!
  275. * Soname: 1:20:0
  276. 2015-10-04 -- 0.8.3
  277. * Fixed: uriCompareRange reported NULL pointer and range of
  278. length zero as equal, by mistake.
  279. Thanks to Robert Kausch and his Coverity report.
  280. * Fixed: Use-after-free in out-of-memory code of uriMakeOwner.
  281. Thanks to Chris Hills and his Klocwork-based report (SF.net bug #28)
  282. * Soname: 1:19:0
  283. 2015-04-27 -- 0.8.2
  284. * Fixed: Broken conversion from/to Windows network shares (SF.net bug #21)
  285. Thanks to Adam Gross and Dmitry Repkin!
  286. * Fixed: Limit uriCompareRange return values to -1/0/1 (SF.net bug #24)
  287. As a side effect, this fixes the test suite for AArch64.
  288. Thanks to Marcin Juszkiewicz for the patch!
  289. * Fixed: MinGW Makefile:
  290. LIB_DIR fixed from ../../lib leftover to ../../src (SF.net bug #27)
  291. Thanks to Dmytro Zagashev for the report!
  292. * Fixed: Add missing NULL checks to UriStringToFilename (SF.net bug #25)
  293. Thanks to Jerome Custodio for the report!
  294. * Changed: Leave inlining decisions to GCC
  295. * Soname: 1:18:0
  296. 2014-10-20 -- 0.8.1
  297. * Fixed: Sync URI_VER_* preprocessor defines (were at 0.7.6, SF.net bug #23)
  298. * Fixed: Bug in internal function that may flip uriEqualsUri results around
  299. * Added: Function uriAddBaseUriEx allowing to resolve URIs with
  300. a scheme identical to that of the base URI to resolve against
  301. as if the URI to resolve had no scheme specified, when flag
  302. URI_RESOLVE_IDENTICAL_SCHEME_COMPAT is specified
  303. (SF.net feature request #4)
  304. * Soname: 1:17:0
  305. 2014-07-12 -- 0.8.0.1
  306. * Fixed: ISO C90 warnings (SF.net bug #20)
  307. * Changed: No longer ship RFC documents (to make things easier for Debian)
  308. * Soname: 1:16:0
  309. 2013-12-20 -- 0.8.0
  310. * Fixed: Resolution of relative URI "/" broken
  311. Thanks to Mo McRoberts for the patch!
  312. * Fixed: uriAddBaseUri produced uriUri objects with both host
  313. and the absolutePath flag set (while the absolutePath flag
  314. should only be true for URI objects without a host) when
  315. resolving absolute URIs like "/" or "/foo/bar".
  316. Now the absolutePath flag is set to URI_FALSE and an empty
  317. segment is added as necessary
  318. * Fixed: .errorCode could end up unset, previously
  319. Thanks to Radu Hociung for the patch! (SF.net bug #16)
  320. * Fixed: Resolve use of non-POSIX "sed -r" used when building
  321. documentation (SF.net bug #18)
  322. Thanks to Ryan Schmidt for reporting!
  323. * Fixed: Build DLL with -no-undefined on Windows
  324. Thanks to Michel Zou for the patch! (SF.net bug #19)
  325. * Added: Command line tool "uriparse"
  326. Thanks to Radu Hociung for coding! (SF.net feature request #3)
  327. * Soname: 1:15:0
  328. 2013-08-24 -- 0.7.9
  329. * Fixed: Error position ended up as NULL for some syntax errors.
  330. Thanks to Daniel Solano Gómez for the patch! (SF.net bug #14)
  331. * Soname: 1:14:0
  332. 2013-05-13 -- 0.7.8
  333. * Fixed: Fix dissection of query string "q=hello&x=&y=" (SF.net bug #12)
  334. Thanks to Marc Novakowski for reporting!
  335. * Soname: 1:13:0
  336. 2012-04-05 -- 0.7.7
  337. * Fixed: Fix rejection of some valid characters for userinfo
  338. section, e.g. "http://%2Fuser:%2F21@host/" (SF.net bug #11)
  339. * Fixed: Fix rejection of valid double colon in userinfo
  340. section, e.g. "http://::@host/"
  341. * Soname: 1:12:0
  342. 2012-01-20 -- 0.7.6
  343. * Fixed: Qt Compressed Help file was not installed
  344. * Fixed: Shadow/VPATH build doc generation
  345. * Fixed: Compile error from Doxygen when configuring with
  346. neither --enable-doc nor --disable-doc
  347. * Fixed: Code documentation errors
  348. Thanks to Valentin Haenel for the patch!
  349. * Fixed: Fix include path in pkg-config, i.e. remove
  350. "/uriparser" suffix as uriparser's headers are meant to
  351. be included by statements like #include <uriparser/....> .
  352. Thanks to Philip de Nier for reporting!
  353. * Fixed: Compilation in context of Eclipse + Cygwin + wchar_t
  354. (SF.net bug #10)
  355. Thanks to Gary Mazzaferro for reporting!
  356. * Fixed: Selection of supported character widths at build
  357. time: <char *> or <wchar_t *> or both
  358. * Added: configure parameters to disable either character
  359. widths: --disable-char, --disable-wchar_t
  360. * Soname: 1:11:0
  361. 2009-03-04 -- 0.7.5
  362. * Added: pkg-config file
  363. * Fixed: File Doxyfile.in was missing from release archives
  364. Thanks to Rakesh Pandit for reporting!
  365. * Fixed: Doc generation troubles
  366. * Changed: No longer shipping bundled libcpptest
  367. * Changed: New dependencies:
  368. - libcpptest 1.1.0 or later
  369. - pkg-config
  370. The libcpptest dependency can be disabled through
  371. configuring with --disable-test, which excludes the
  372. test suite from compilation.
  373. * Soname: 1:10:0
  374. 2008-12-23 -- 0.7.4
  375. * Fixed: Null pointer de-referencing when dissecting query
  376. strings starting with "&" right after "?" (SF.net bug #7).
  377. Thanks to Harvey Vrsalovic for reporting!
  378. * Fixed: Memory leak in uriFreeQueryList function (SF.net bug #6)
  379. Thanks to Daniel Chapiesky for reporting!
  380. * Fixed: Memory leak in uriNormalizeSyntax(Ex) functions (SF.net bug #6)
  381. Thanks to Daniel Chapiesky for reporting!
  382. * Improved: Nested configure hacks resolved
  383. * Soname: 1:9:0
  384. 2008-11-08 -- 0.7.3
  385. * Fixed: Missing NULL check in parsing routines
  386. Thanks to Sezai Tekin for reporting!
  387. * Fixed: uriparser now builds on Cygwin
  388. * Fixed: Now shipping gnulib's config.guess from HEAD
  389. which is suitable for Haiku (SF.net bug #5)
  390. * Changed: swprintf requirement resolved
  391. * Changed: Build system changes:
  392. - configure option --enable-doc added
  393. - configure.in renamed to configure.ac
  394. - some Autotools files moved to build-aux directory
  395. * Added: Qt Assistant documentation output:
  396. - Qt Compressed Help (.qch) at <doc/uriparser-doc-*.qch>
  397. - Qt Help Project (.qhp) at <doc/html/index.qhp>
  398. Generation requires Doxygen 1.5.7.1-20081103 or later.
  399. * Soname: 1:8:0
  400. 2008-09-01 -- 0.7.2
  401. * Fixed: Bad cleanup logic in functions
  402. - uriAddBaseUri(..)
  403. - uriRemoveBaseUri(..)
  404. Previously you needed to call uriFreeUriMembers on return code
  405. URI_ERROR_MALLOC and only then. So that's why these functions now
  406. take cleanup off your shoulders. An extra call to uriFreeUriMembers
  407. from your side is still needed in case of success.
  408. * Soname: 1:7:0
  409. 2008-04-27 -- 0.7.1
  410. * Fixed: Bogus syntax error when parsing URIs with port-like
  411. passwords, e.g. "http://user:21@host/" (SF.net bug #1)
  412. Thanks to Friedrich Delgado Friedrichs for reporting!
  413. * Fixed: Parser did not handle trailing slashes correctly in some cases,
  414. which also made the structures produced from parsing "http://e.com/"
  415. and "http://e.com" indistinguishable. (SF.net bug #2)
  416. Thanks to Edward Z. Yang for reporting!
  417. 2008-04-04 -- 0.7.0
  418. * Added: Dissection and composition of query strings
  419. * Added: Documentation improvements
  420. (in|out|inout indicators, addition of \since and \see)
  421. * Changed: Code::Blocks project files updated from file format
  422. version 1.4 to 1.6, which is produced by Code::Blocks 8.02
  423. * Added: Code::Blocks workspace file
  424. * Soname: 1:5:0
  425. 2008-02-25 -- 0.6.4
  426. * Added: Syntax-based normalization can now handle relative URIs,
  427. e.g. "../../a/b/.././c" is normalized to "../../a/c"
  428. * Fixed: Normalization code could free foreign memory
  429. * Fixed: Normalization processed the path segment even when asked not to
  430. * Added: MinGW Makefile and related readme
  431. Thanks to Michael Anthony Puls II!
  432. * Fixed: Documentation bug not requiring enough memory for the output
  433. buffer when converting a relative file URI back to a filename
  434. * Soname: 1:4:0
  435. 2008-02-11 -- 0.6.3
  436. * Fixed: Two major crash bugs in normalization code
  437. Thanks to Adrian Manrique for the patch!
  438. * Added: Brief usage tutorial
  439. * Soname: 1:3:0
  440. 2008-02-08 -- 0.6.2
  441. * Fixed: Freeing a normalized URI like "http://test?"
  442. caused a crash. Thanks to Adrian Manrique for reporting!
  443. * Fixed: Filename <--> URI string conversion helpers can
  444. now handle relative URIs and filenames
  445. * Soname: 1:2:0
  446. 2007-12-23 -- 0.6.1
  447. * Fixed: Percent-encodings in hostnames were not repaired during normalization.
  448. Thanks to Adrian Manrique for reporting!
  449. * Fixed: Percent-encodings were fixed after dot removal not before during
  450. normalization.
  451. Thanks to Adrian Manrique for reporting!
  452. * Fixed: Include path order bug
  453. Thanks to Ed Schouten for reporting this!
  454. * Fixed: Shadow builds now possible
  455. Thanks to Adeodato Simó for the patch!
  456. * Added: Version guards for Autoconf/Automake
  457. Thanks to Martin Michlmayr for reporting!
  458. * Soname: 1:1:0
  459. 2007-09-17 -- 0.6.0
  460. * Fixed: Proper soname updates from now on, starting at 1:0:0
  461. * Removed: Visual Studio 2003 project files
  462. 2007-09-13 -- 0.5.2
  463. * Added: RemoveBaseUri function to create URI references
  464. * Added: Unix/Windows filename <--> URI string conversion helpers
  465. * Added: EscapeEx function to escape text blocks without zero termination
  466. * Fixed: Bug in ToString for URIs with scheme, path, but no host (e.g. "f:/.//g")
  467. * Fixed: AddBase now resolves ".//g" with base "f:/a" to "f:/.//g" instead of
  468. "f://g" which would result in "g" becoming the authority part when parsing
  469. a recomposition (ToString) of that URI structure. This is a whole in RFC 3986,
  470. see http://lists.w3.org/Archives/Public/uri/2007Aug/0003.html for details.
  471. 2007-08-09 -- 0.5.1
  472. * Fixed: Empty host bug (URIs like "///g")
  473. * Fixed: Relative URIs are no longer touched by normalization
  474. * Fixed: MergePath failed for empty paths
  475. * Fixed: Bug with "." segments in AddBase
  476. All of the above revealed by test cases from 4Suite (http://4suite.org/)
  477. 2007-07-28 -- 0.5.0
  478. * Added: Syntax-based normalization
  479. * Added: Percent-encoding function Escape
  480. * Improved: Malloc/NULL checks added
  481. * Added: New function UnescapeInPlaceEx can also decode '+' to ' '
  482. and convert line breaks
  483. * Added: Exact space computation for ToString, see ToStringCharsRequired
  484. * Added: --enable-sizedown for saving space and slower code
  485. * Fixed: Two internal functions were exposed in the API by mistake:
  486. uriPushToStack and uriStackToOctet
  487. * Added: Visual Studio 2005 project files
  488. * Removed: Legacy code (removal was announced for 0.5.0)
  489. 2007-07-06 -- 0.4.1
  490. * Fixed: ToString did not work for IPv4 and IPv6 hosts
  491. 2007-07-03 -- 0.4.0
  492. * Added: References resolution (think relative to absolute)
  493. * Added: Naive URI equality check
  494. * Added: URIs can now be converted back to strings
  495. * Fixed: The first path segment of a relative URI was eaten
  496. (functions ParseSegmentNz and ParseMustBeSegmentNzNc)
  497. * Fixed: uri->scheme.first was not reset in some cases
  498. (function ParseMustBeSegmentNzNc)
  499. * Improved: Test suite now built on "make check", not before
  500. * Fixed: Test suite always returned 0 (success)
  501. 2007-04-23 -- 0.3.4
  502. * Added: Shared library support (moved to libtool)
  503. 2007-04-03 -- 0.3.3
  504. * Fixed: Now unix EOLs constantly
  505. * Fixed: Added forgotten files to release package
  506. 2007-03-31 -- 0.3.2
  507. * Fixed: Now compiles on FreeBSD
  508. 2007-03-28 -- 0.3.1
  509. * Fixed: Now compiles on Mac OS X
  510. 2007-03-26 -- 0.3.0
  511. * Added: New API, old marked deprecated
  512. * Added: Added support for wide strings (think wchar_t)
  513. * Added: Doxygen code documentation
  514. * Added: Test suite using CppTest
  515. * Changed: Library code is now licensed under the new BSD license.
  516. The test suite code is licensed under LGPL.
  517. 2006-12-08 -- 0.2.1