[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: