vcs-svn: suppress a signed/unsigned comparison warning

All callers pass a nonnegative delta_len, so the code is already safe. Add an assertion to ensure that remains so and add a cast to keep clang and gcc -Wsign-compare from worrying. Reported-by: David Barr <davidbarr@google.com> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

Jonathan Nieder committed Jul 5, 2012 at 22:21 UTC 96a60a87098534b74e3b98e636ec65daea9823a7
1 file changed +3 -2
vcs-svn/svndiff.c
+3 -2
@@ -77,8 +77,9 @@ static int error_short_read(struct line_buffer *input)
77 static int read_chunk(struct line_buffer *delta, off_t *delta_len,
78 struct strbuf *buf, size_t len)
79 {
80 + assert(*delta_len >= 0);
81 strbuf_reset(buf);
81 - if (len > *delta_len ||
82 + if (len > (uintmax_t) *delta_len ||
83 buffer_read_binary(delta, buf, len) != len)
84 return error_short_read(delta);
85 *delta_len -= buf->len;
@@ -290,7 +291,7 @@ error_out:
291 int svndiff0_apply(struct line_buffer *delta, off_t delta_len,
292 struct sliding_view *preimage, FILE *postimage)
293 {
293 - assert(delta && preimage && postimage);
294 + assert(delta && preimage && postimage && delta_len >= 0);
295
296 if (read_magic(delta, &delta_len))
297 return -1;