Bug#703481: libapt-pkg4.12: URI parsing not to RFC
On 20 March 2013 15:53, Daniel Hartwig <mandyke@gmail.com> wrote:
> Package: libapt-pkg4.12
> Version: 0.9.7.7
> Severity: minor
>
> Dear deity
>
> While investigating the URI class in apt-pkg I have picked up on some
> issues where URI parsing is not to RFC 3986.
>
> scheme path
> |_ ___|___
> / \ / \
> URI U("gzip:./bar/cow");
> …
> equals(".", U.Host);
> equals("/bar/cow", U.Path);
>
> Same issue. This is again a relative path (‘path-rootless’ in the RFC)
> beginning from ".". Unlike in the previous example, the use case for
> unusual semantics here needs to be investigated before making any
> changes.
>
File-based methods actually include code to work around the faulty
parsing and reconstruct the proper path as per this extract from
gzip.cc:
std::string Path = Get.Host + Get.Path; // To account for relative paths
so fixing the parsing will not affect those. Only cdrom will need adapting.
Reply to: