On Sun, 26 Nov 2006, Vlad Georgescu wrote:
...
> It seems that, on Windows, svn_repos_find_root_path will get stuck in
> an infinite loop if it is given an absolute path that doesn't actually
> contain a repository root. I discovered this after mistyping the root
> path when invoking svnserve. The relevant code is this:
>
> while (1)
> {
> /* Try to decode the path, so we don't fail if it contains characters
> that aren't supported by the OS filesystem. The subversion fs
> isn't restricted by the OS filesystem character set. */
> err = svn_utf_cstring_from_utf8(&decoded, candidate, pool);
> if (!err && check_repos_path(candidate, pool))
> break;
> svn_error_clear(err);
> if (candidate[0] == '\0' || strcmp(candidate, "/") == 0)
> return NULL;
> candidate = svn_path_dirname(candidate, pool);
> }
>
> Notice that it only gets out of the loop when it encounters the Unix
> root directory. The following patch fixes this problem:
>
> [[[
> * subversion/libsvn_repos/repos.c
> (svn_repos_find_root_path): Check that we reached the filesystem
> root in a cross-platform
> manner.
> ]]]
Thanks Vlad, committed in r22483.
- application/pgp-signature attachment: stored
Received on Tue Nov 28 20:07:35 2006