]> Pileus Git - ~andy/git/blobdiff - vcs-svn/sliding_window.c
vcs-svn: cap number of bytes read from sliding view
[~andy/git] / vcs-svn / sliding_window.c
index 1b8d9875ed8831a98d0107db71e0ba1c3083a714..1bac7a4c7f0df0ccee7755d9d441ebb26d96c323 100644 (file)
@@ -54,6 +54,8 @@ int move_window(struct sliding_view *view, off_t off, size_t width)
                return -1;
        if (off < view->off || off + width < view->off + view->width)
                return error("invalid delta: window slides left");
+       if (view->max_off >= 0 && view->max_off < off + width)
+               return error("delta preimage ends early");
 
        file_offset = view->off + view->buf.len;
        if (off < file_offset) {