vcs-svn: cap number of bytes read from sliding view
commitfbdd4f6fb477885e4bf81658e02c3542a861c695
authorJonathan Nieder <jrnieder@gmail.com>
Fri, 27 May 2011 09:07:44 +0000 (27 04:07 -0500)
committerJonathan Nieder <jrnieder@gmail.com>
Wed, 15 Jun 2011 07:15:22 +0000 (15 02:15 -0500)
tree4284cbc220ef15c28474e3203448fd60397c68d5
parentb747e5675db5e26292c942146a25e1c26440c5f7
vcs-svn: cap number of bytes read from sliding view

Introduce a "max_off" field in struct sliding_view, roughly
representing a maximum number of bytes that can be read from "file".
If it is set to a nonnegative integer, a call to move_window()
attempting to put the right endpoint beyond that offset will return
an error instead.

The idea is to use this when applying Subversion-format deltas to
prevent reads past the end of the preimage (which has known length).
Without such a check, corrupt deltas would cause svn-fe to block
indefinitely when data in the input pipe is exhausted.

Inspired-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
test-svn-fe.c
vcs-svn/sliding_window.c
vcs-svn/sliding_window.h