Subject: [PATCH/RFC db/text-delta 0/4] vcs-svn: avoid hangs for corrupt deltas

From: Jonathan Nieder <[email-masked]>
Date: Fri, 27 May 2011 06:08:28 -0500

Hi,

As promised, here's a quick series to stop a too-greedy delta from
causing svn-fe deadlock.  It took longer than I thought it would,
mostly because I started too late.

If I remember correctly, this first showed up as a theoretical
possibility when chatting with Ram and later showed up in practice due
to a bug in a test script or something like that.  I don't remember
the details but luckily it is not hard to make up a delta exhibiting
the problem.  See the test script in patch 4 for details.

After review, I'd like to push this to the main svn-fe branch and ask
Junio to pull it so text delta support can be rolled out.  There's
just no reason not to, except for the obvious ones:

 - less pleasant raw UI for svn-fe
 - losing support for non-git fast-import backends that don't
   support cat-blob yet

Waiting for those would be to put the cart before the horse (how can
people experiment with making something better if they haven't
experienced what we have now?).  Review of the pending patches at

 git://repo.or.cz/git/jrn.git svn-fe-next

to find missed details or other things that would be nice to get
taken care of toward that end would be very welcome.

As for this series: hopefully it's simple but it's perfectly
possible I got something terribly wrong.  Thoughts welcome, as
always.

Thanks to David and Ram for some useful discussions on irc, including
those that led to these patches.

Jonathan Nieder (4):
  test-svn-fe: split off "test-svn-fe -d" into a separate function
  vcs-svn: cap number of bytes read from sliding view
  vcs-svn: guard against overflow when computing preimage length
  vcs-svn: avoid hangs from corrupt deltas