[
https://issues.apache.org/jira/browse/SVN-4612?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Vincent Lefevre updated SVN-4612:
---------------------------------
Description:
Various functions assume that the path provided in argument is a canonical
path. When the path is not canonical, this triggers an assertion failure in the
library:
{{svn_dirent_join: Assertion `svn_dirent_is_canonical(base, pool)' failed.}}
While this may be acceptable for C programs, this is not in Perl, where one
should get proper error reporting.
Test case with {{info}}:
{code}
#!/usr/bin/env perl
use strict;
use SVN::Client;
my $svnc = SVN::Client->new;
$svnc->info('.', undef, undef, sub { }, 0);
{code}
The Perl module should make sure that the path is canonical before calling the
corresponding svn library function (cannot this be automatically generated with
swig if the code has some form of precondition that the path needs to be
canonical?). It could either canonicalize the path so that the library call
succeeds or immediately return an error if the path is not canonical.
Alternatively, the svn library function could do path canonicalization itself.
was:
Various functions assume that the path provided in argument is a canonical
path. When the path is not canonical, this triggers an assertion failure in the
library. While this may be acceptable for C programs, this is not in Perl,
where one should get proper error reporting.
Test case with {{info}}:
{code}
#!/usr/bin/env perl
use strict;
use SVN::Client;
my $svnc = SVN::Client->new;
$svnc->info('.', undef, undef, sub { }, 0);
{code}
The Perl module should make sure that the path is canonical before calling the
corresponding svn library function (cannot this be automatically generated with
swig if the code has some form of precondition that the path needs to be
canonical?). It could either canonicalize the path so that the library call
succeeds or immediately return an error if the path is not canonical.
Alternatively, the svn library function could do path canonicalization itself.
> With Perl module SVN::Client, assertion failure due to non-canonical path
> -------------------------------------------------------------------------
>
> Key: SVN-4612
> URL: https://issues.apache.org/jira/browse/SVN-4612
> Project: Subversion
> Issue Type: Bug
> Components: bindings_swig_perl
> Affects Versions: 1.9.3
> Reporter: Vincent Lefevre
>
> Various functions assume that the path provided in argument is a canonical
> path. When the path is not canonical, this triggers an assertion failure in
> the library:
> {{svn_dirent_join: Assertion `svn_dirent_is_canonical(base, pool)' failed.}}
> While this may be acceptable for C programs, this is not in Perl, where one
> should get proper error reporting.
> Test case with {{info}}:
> {code}
> #!/usr/bin/env perl
> use strict;
> use SVN::Client;
> my $svnc = SVN::Client->new;
> $svnc->info('.', undef, undef, sub { }, 0);
> {code}
> The Perl module should make sure that the path is canonical before calling
> the corresponding svn library function (cannot this be automatically
> generated with swig if the code has some form of precondition that the path
> needs to be canonical?). It could either canonicalize the path so that the
> library call succeeds or immediately return an error if the path is not
> canonical. Alternatively, the svn library function could do path
> canonicalization itself.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)