Branko Čibej <br...@wandisco.com> writes: > On 22.08.2013 22:40, Branko Čibej wrote: >> On 22.08.2013 18:11, kmra...@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*