summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 97925fd)
raw | patch | inline | side by side (parent: 97925fd)
author | Eric Wong <normalperson@yhbt.net> | |
Sat, 19 May 2007 09:58:37 +0000 (02:58 -0700) | ||
committer | Junio C Hamano <junkio@cox.net> | |
Sat, 19 May 2007 19:26:36 +0000 (12:26 -0700) |
When sorting directory names by depth (slash ("/") count) and
closing the deepest directories first (as the protocol
requires), we failed to put the root baton (with an empty string
as its key "") after top-level directories (which did not have
any slashes).
This resulted in svnserve being in a situation it couldn't
handle and caused a segmentation fault on the remote server.
This bug did not affect users of DAV and filesystem repositories.
Signed-off-by: Eric Wong <normalperson@yhbt.net>
Confirmed-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <junkio@cox.net>
closing the deepest directories first (as the protocol
requires), we failed to put the root baton (with an empty string
as its key "") after top-level directories (which did not have
any slashes).
This resulted in svnserve being in a situation it couldn't
handle and caused a segmentation fault on the remote server.
This bug did not affect users of DAV and filesystem repositories.
Signed-off-by: Eric Wong <normalperson@yhbt.net>
Confirmed-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <junkio@cox.net>
git-svn.perl | patch | blob | history |
diff --git a/git-svn.perl b/git-svn.perl
index f4c9ff1b8520afadf9693fec1ece994fdad5d321..b87dedc99c511213c5bbda916ba583e60e76096a 100755 (executable)
--- a/git-svn.perl
+++ b/git-svn.perl
my ($self) = @_;
my ($p,$bat) = ($self->{pool}, $self->{bat});
foreach (sort { $b =~ tr#/#/# <=> $a =~ tr#/#/# } keys %$bat) {
+ next if $_ eq '';
$self->close_directory($bat->{$_}, $p);
}
+ $self->close_directory($bat->{''}, $p);
$self->SUPER::close_edit($p);
$p->clear;
}