Bug#359679: libsvn-core-perl: status(".", ...) gives an assert() error

Julian Gilbey jdg at debian.org
Tue Mar 28 12:31:48 UTC 2006


Package: libsvn-core-perl
Version: 1.2.3dfsg1-3

(Command line input and output broken for readability)

Compare this (1):

burnside:~/debian/tex/tetex-bin $ perl -MSVN::Client -e \
  'sub print_names { print "<$_[0]>\n"; } $ctx=new SVN::Client;
  $ctx->status("", "BASE", \&print_names, 1, 1, 0, 1);' | head -5
<>
<.pc>
<.pc/.version>
<configure>
<INSTALL.generic>

to this (2):

burnside:~/debian/tex/tetex-bin $ perl -MSVN::Client -e \
  'sub print_names { print "<$_[0]>\n"; } $ctx=new SVN::Client;
  $ctx->status(".", "BASE", \&print_names, 1, 1, 0, 1);' | head -5
perl: /tmp/buildd/subversion-1.2.3dfsg1/subversion/libsvn_subr/path.c:377:
svn_path_basename: Assertion `is_canonical (path, len)' failed.

Several weirdnesses here:

(a) In (1), there is a blank entry returned initially - perhaps this
    is the initial directory?  (Incidentally, this breaks
    svn-buildpackage, which is why I started looking at this, see
    http://bugs.debian.org/334608 .)

(b) In (2), the only change is to call the directory "." instead of
    leaving the first argument "".  And I end up getting an
    unintelligible error message!

Ideally, assert()s should only be used in the code where "this can't
happen".  Maybe they are, but this one certainly did happen!

:-)

   Julian





More information about the pkg-subversion-maintainers mailing list