author | Jonathan Nieder <jrnieder@gmail.com> | |
Fri, 27 May 2011 09:07:44 +0000 (04:07 -0500) | ||
committer | Jonathan Nieder <jrnieder@gmail.com> | |
Wed, 15 Jun 2011 07:15:22 +0000 (02:15 -0500) | ||
commit | fbdd4f6fb477885e4bf81658e02c3542a861c695 | |
tree | 4284cbc220ef15c28474e3203448fd60397c68d5 | tree | snapshot |
parent | b747e5675db5e26292c942146a25e1c26440c5f7 | commit | diff |
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>
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 | diff | blob | history | |
vcs-svn/sliding_window.c | diff | blob | history | |
vcs-svn/sliding_window.h | diff | blob | history |