Branko Čibej <brane_at_wandisco.com> writes:
> On 22.08.2013 22:40, Branko Čibej wrote:
>> On 22.08.2013 18:11, kmradke_at_rockwellcollins.com wrote:
>>> Passing an invalid URL to svn co causes an abort and core dump. This
>>> fails with all protocols
>>> http, svn, file. It occurs with all versions I tested (1.7.5, 1.7.11,
>>> 1.7.12, 1.8.1, and the now defunct 1.8.2)
>>> It occurs with multiple subcommand (ls, info, etc.) It happens on
>>> both unix and windows platforms.
>>> The "abort" is especially bad on Windows since it will pop open a
>>> dialog window due to the abort.
>>>
>>> It is expected that the command line would return an appropriate user
>>> friendly error message
>>> instead of crashing when faced with invalid input.
>>>
>>>
>>> ./svn co file://./test <file://test>
>>> svn: subversion/libsvn_subr/dirent_uri.c:1315: svn_uri_basename:
>>> Assertion `svn_uri_is_canonical(uri, ((void *)0))' failed.
>>> Abort (core dumped)
>> Interesting ... the assertion itself is fine, however, the command-line
>> client should either reject invalid URL parameters, or canonicalize the
>> input. Apparently we missed one.
>
> Apparently all commands that accept an URL will abort in this way,
> except for "svn relocate". So it looks like some kind of "policy" but I
> think it's the wrong one.
svn_uri_canonicalize allows any characters in hostname, A-Z is converted
to a-z, other characters are simply copied:
/* Found a hostname, convert to lowercase and copy to dst. */
if (*src == '[')
{
...
}
else
while (*src && (*src != '/') && (*src != ':'))
*(dst++) = canonicalize_to_lower((*src++));
What is the canonical form of this?
scheme://./
Should we drop '.' to give:
scheme:///
or do we have to retain it as
scheme://./
and change svn_uri_is_canonical to allow a hostname '.'?
--
Philip Martin | Subversion Committer
WANdisco // *Non-Stop Data*
Received on 2013-08-23 01:04:47 CEST