0.9.3:
* Fixed: pkg-config: Fix version line in liburiparser.pc
* Changed: MinGW: Add library version suffix to DLL name
* Soname: 1:26:0
0.9.2:
* Fixed: Add missing extern "C" wrapper to UriIp4.h for use from C++
* Fixed: Linking error for symbol defaultMemoryManager from mixing C and C++
* Fixed: Link errors on Haiku regarding function inet_ntop
* Fixed: Mark API functions with __declspec(dllexport) and
__declspec(dllimport) in *.h files for Visual Studio
* Improved: Use -fvisibility=hidden by default with supporting compilers,
e.g. GCC and Clang
* Changed: Migrated from GNU Autotools to CMake
* Removed: All Windows-related build systems other than CMake
* Soname: 1:25:0
>>>>>>>>>>>>> SECURITY >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
* Fixed:
Out-of-bounds read in uriParse*Ex* for incomplete URIs with IPv6
addresses with embedded IPv4 address, e.g. "//[::44.1";
mitigated if passed parameter <afterLast> points to readable memory
containing a '\0' byte.
Thanks to Joergen Ibsen for the report!
>>>>>>>>>>>>> SECURITY >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
* Fixed: When parsing a malformed URI with an IPvFuture address
(e.g. "http://[vA.123456" missing "]"), errorPos would point to the first
character after "v" than the actual position of the error (here: the end
of the string)
* Fixed: uriToStringCharsRequired* reported 1 more byte than actually needed
for IPv4 address URIs (GitHub #41); Thanks to @gyh007 for the patch!
* Fixed: Compilation with MinGW
Thanks to Sandro Mani for the patch!
* Fixed: Drop use of asprintf from the test suite for MinGW (GitHub #40)
* Improved: For parse errors, waterproof errorPos <= afterLast
* Soname: 1:24:0
Via email from Sebastian Pipping.
2018-10-27 -- 0.9.0
>>>>>>>>>>>>> SECURITY >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
* Fixed: Out-of-bounds write in uriComposeQuery* and uriComposeQueryEx*
Commit 864f5d4c127def386dd5cc926ad96934b297f04e
Thanks to Google Autofuzz team for the report!
* Fixed: Detect integer overflow in uriComposeQuery* and uriComposeQueryEx*
Commit f76275d4a91b28d687250525d3a0c5509bbd666f
Thanks to Google Autofuzz team for the report!
* Fixed: Protect uriResetUri* against acting on NULL input
Commit f58c25069cf4a986fe17a80c5b38687e31feb539
>>>>>>>>>>>>> SECURITY >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
* Fixed: Be fully compliant to C89 (GitHub #28) and C++98 in test code
* Fixed: Fix off-by-one in uriComposeQueryCharsRequired* and ...Ex*
Reported space requirements were 1 byte bigger than necessary
* Changed: Marked as deprecated:
Deprecated functions:
uriNormalizeSyntaxMaskRequired[AW]
uriParseUri[AW]
uriParseUriEx[AW]
* Added: Add convenience functions to ease user code to parse a single URI
New functions:
uriParseSingleUri[AW]
uriParseSingleUriEx[AW]
uriParseSingleUriExMm[AW]
* Added: Support for custom memory managers (GitHub #26, #35), see Doxygen
New functions (as extension of existing ones):
uriAddBaseUriExMm[AW]
uriComposeQueryMallocExMm[AW]
uriDissectQueryMallocExMm[AW]
uriFreeQueryListMm[AW]
uriFreeUriMembersMm[AW]
uriNormalizeSyntaxExMm[AW]
uriParseSingleUriExMm[AW]
uriRemoveBaseUriMm[AW]
New functions (for convenience):
uriCompleteMemoryManager
uriEmulateCalloc
uriEmulateReallocarray
uriTestMemoryManager
New error codes:
URI_ERROR_MEMORY_MANAGER_FAULTY
URI_ERROR_MEMORY_MANAGER_INCOMPLETE
New types:
UriFuncCalloc
UriFuncFree
UriFuncMalloc
UriFuncRealloc
UriFuncReallocarray
UriMemoryManager
* Added: Add non-void versions of uriNormalizeSyntaxMaskRequired*
New functions:
uriNormalizeSyntaxMaskRequiredEx[AW]
* Changed: Migrate test suite from CppTest to GoogleTest 1.8.1
* Improved: Make test suite free of memory leaks (GitHub #31)
Thanks to AddressSanitizer!
* Removed: Support for pointless define URI_SIZEDOWN (GitHub #29)
Related configure option --enable-sizedown has also been removed.
* Soname: 1:23:0
2018-08-18 -- 0.8.6
* Fixed: Bad/NULL .hostText.afterLast when parsing certain rather pathologic
but well-formed URIs with empty host (e.g. "//:%aa@") (GitHub #15)
Thanks to Kurt Schwehr for the report!
* Fixed: Fix uriRemoveBaseUri for case where scheme, host name,
IPvFuture address or path segments of the source address were
string prefixes of the related counterpart in the base URI.
Thanks to Yang Yu for the patch! (GitHub #19, #20)
* Fixed: Make UriStringToUnixFilename and UriStringToWindowsFilename
support minimal representation a la RFC 8089, e.g. file:/bin/bash
(compare to file:///bin/bash with three slashes) (GitHub #12, #14)
Thanks to Zane van Iperen for the report!
* Fixed: Documentation typos (GitHub #10, #11)
Thanks to Graham Percival!
* Improved: Made API docs of uriRemoveBaseUri more clear
(related to GitHub #19)
* Soname: 1:22:0
2018-02-07 -- 0.8.5
* Changed: The uriparser project has moved from SourceForge to GitHub:
Code + issue tracker: https://github.com/uriparser/uriparser
New website: https://uriparser.github.io/
Please update any links of yours, accordingly. Thank you!
* Fixed: Memleak in out-of-memory clean-up code
of URI normalization, related to SF.net bug #28.
Thanks to Chris Hills for the report!
* Fixed: Fix compilation of uriparse(1) on FreeBSD
Thanks to Ed Schouten for the patch!
* Fixed: Fix C90 compilation errors
Thanks to Joel Cunningham for the patches!
* Fixed: Space requirements documented for uriWindowsFilenameToUriStringA
given URI "file://server1/file1.txt" (SF.net bug #31)
Thanks to threedyd for the report!
* Fixed: Compiler warnings
Thanks to Joel Cunningham for the patches!
* Fixed: Stop exporting internal function RemoveBaseUriImpl
Thanks to Joel Cunningham for the report!
* Fixed: API documentation front page no longer empty with Doxygen 1.8.13
* Fixed: "make -C doc install" fixed for lack of .map files
* Improved: Communicate that absolutePath is always URI_FALSE for URIs
with a host in uriparse CLI tool output and Uri.h header
(GitHub #2, SF.net #30)
* Soname: 1:21:0
2015-10-12 -- 0.8.4
* Fixed: Stack overflow on parsing malformed IPv6 addresses with
more than eigtht quads. Thanks to Alexander Klink for the report!
* Soname: 1:20:0
2015-10-04 -- 0.8.3
* Fixed: uriCompareRange reported NULL pointer and range of
length zero as equal, by mistake.
Thanks to Robert Kausch and his Coverity report.
* Fixed: Use-after-free in out-of-memory code of uriMakeOwner.
Thanks to Chris Hills and his Klocwork-based report (SF.net bug #28)
* Soname: 1:19:0
2015-04-27 -- 0.8.2
* Fixed: Broken conversion from/to Windows network shares (SF.net bug #21)
Thanks to Adam Gross and Dmitry Repkin!
* Fixed: Limit uriCompareRange return values to -1/0/1 (SF.net bug #24)
As a side effect, this fixes the test suite for AArch64.
Thanks to Marcin Juszkiewicz for the patch!
* Fixed: MinGW Makefile:
LIB_DIR fixed from ../../lib leftover to ../../src (SF.net bug #27)
Thanks to Dmytro Zagashev for the report!
* Fixed: Add missing NULL checks to UriStringToFilename (SF.net bug #25)
Thanks to Jerome Custodio for the report!
* Changed: Leave inlining decisions to GCC
* Soname: 1:18:0
2014-10-20 -- 0.8.1
* Fixed: Sync URI_VER_* preprocessor defines (were at 0.7.6, SF.net bug #23)
* Fixed: Bug in internal function that may flip uriEqualsUri results around
* Added: Function uriAddBaseUriEx allowing to resolve URIs with
a scheme identical to that of the base URI to resolve against
as if the URI to resolve had no scheme specified, when flag
URI_RESOLVE_IDENTICAL_SCHEME_COMPAT is specified
(SF.net feature request #4)
* Soname: 1:17:0
2014-07-12 -- 0.8.0.1
* Fixed: ISO C90 warnings (SF.net bug #20)
* Changed: No longer ship RFC documents (to make things easier for Debian)
* Soname: 1:16:0
2013-12-20 -- 0.8.0
* Fixed: Resolution of relative URI "/" broken
Thanks to Mo McRoberts for the patch!
* Fixed: uriAddBaseUri produced uriUri objects with both host
and the absolutePath flag set (while the absolutePath flag
should only be true for URI objects without a host) when
resolving absolute URIs like "/" or "/foo/bar".
Now the absolutePath flag is set to URI_FALSE and an empty
segment is added as necessary
* Fixed: .errorCode could end up unset, previously
Thanks to Radu Hociung for the patch! (SF.net bug #16)
* Fixed: Resolve use of non-POSIX "sed -r" used when building
documentation (SF.net bug #18)
Thanks to Ryan Schmidt for reporting!
* Fixed: Build DLL with -no-undefined on Windows
Thanks to Michel Zou for the patch! (SF.net bug #19)
* Added: Command line tool "uriparse"
Thanks to Radu Hociung for coding! (SF.net feature request #3)
* Soname: 1:15:0
2013-08-24 -- 0.7.9
* Fixed: Error position ended up as NULL for some syntax errors.
Thanks to Daniel Solano Gómez for the patch! (SF.net bug #14)
* Soname: 1:14:0
2013-05-13 -- 0.7.8
* Fixed: Fix dissection of query string "q=hello&x=&y=" (SF.net bug #12)
Thanks to Marc Novakowski for reporting!
* Soname: 1:13:0
The actual fix as been done by "pkglint -F */*/buildlink3.mk", and was
reviewed manually.
There are some .include lines that still are indented with zero spaces
although the surrounding .if is indented. This is existing practice.
Problems found locating distfiles:
Package cabocha: missing distfile cabocha-0.68.tar.bz2
Package convertlit: missing distfile clit18src.zip
Package php-enchant: missing distfile php-enchant/enchant-1.1.0.tgz
Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden). All existing
SHA1 digests retained for now as an audit trail.
This changes the buildlink3.mk files to use an include guard for the
recursive include. The use of BUILDLINK_DEPTH, BUILDLINK_DEPENDS,
BUILDLINK_PACKAGES and BUILDLINK_ORDER is handled by a single new
variable BUILDLINK_TREE. Each buildlink3.mk file adds a pair of
enter/exit marker, which can be used to reconstruct the tree and
to determine first level includes. Avoiding := for large variables
(BUILDLINK_ORDER) speeds up parse time as += has linear complexity.
The include guard reduces system time by avoiding reading files over and
over again. For complex packages this reduces both %user and %sys time to
half of the former time.
parsing routines. Also, they ship doxygen-generated qt help
files, but installing those will require a seperate docs package
or doxgen option to avoid the large dependency.
fix:
2008-09-01 -- 0.7.2
* Fixed: Bad cleanup logic in functions
- uriAddBaseUri(..)
- uriRemoveBaseUri(..)
Previously you needed to call uriFreeUriMembers on return code
URI_ERROR_MALLOC and only then. So that's why these functions now
take cleanup off your shoulders. An extra call to uriFreeUriMembers
from your side is still needed in case of success.
* Soname: 1:7:0
2008-04-27 -- 0.7.1
* Fixed: Bogus syntax error when parsing URIs with port-like
passwords, e.g. "http://user:21@host/" (#1948038)
Thanks to Friedrich Delgado Friedrichs for reporting!
* Fixed: Parser did not handle trailing slashes correctly in some cases,
which also made the structures produced from parsing "http://e.com/"
and "http://e.com" indistinguishable. (#1950126)
Thanks to Edward Z. Yang for reporting!
2008-04-04 -- 0.7.0
* Added: Dissection and composition of query strings
* Added: Documentation improvements
(in|out|inout indicators, addition of \since and \see)
* Changed: Code::Blocks project files updated from file format
version 1.4 to 1.6, which is produced by Code::Blocks 8.02
* Added: Code::Blocks workspace file
* Changed: Soname set to 1:5:0
2008-02-25 -- 0.6.4
* Added: Syntax-based normalization can now handle relative URIs,
e.g. "../../a/b/.././c" is normalized to "../../a/c"
* Fixed: Normalization code could free foreign memory
* Fixed: Normalization processed the path segment even when asked not to
* Added: MinGW Makefile and related readme
Thanks to Michael Anthony Puls II!
* Fixed: Documentation bug not requiring enough memory for the output
buffer when converting a relative file URI back to a filename
* Changed: Soname set to 1:4:0
2008-02-11 -- 0.6.3
* Fixed: Two major crash bugs in normalization code
Thanks to Adrian Manrique for the patch!
* Added: Brief usage tutorial
* Changed: Soname set to 1:3:0
2008-02-08 -- 0.6.2
* Fixed: Freeing a normalized URI like "http://test?"
caused a crash. Thanks to Adrian Manrique for reporting!
* Fixed: Filename <--> URI string conversion helpers can
now handle relative URIs and filenames
* Changed: Soname set to 1:2:0
2007-12-23 -- 0.6.1
* Fixed: Percent-encodings in hostnames were not repaired during
normalization.
Thanks to Adrian Manrique for reporting!
* Fixed: Percent-encodings were fixed after dot removal not before during
normalization.
Thanks to Adrian Manrique for reporting!
* Fixed: Include path order bug
Thanks to Ed Schouten for reporting this!
* Fixed: Shadow builds now possible
Thanks to Adeodato Simó for the patch!
* Added: Version guards for Autoconf/Automake
Thanks to Martin Michlmayr for reporting!
* Changed: Soname set to 1:1:0
Uriparser is a strictly RFC 3986 compliant URI parsing library. uriparser
is cross-platform, fast, supports Unicode and is licensed under the New
BSD license.