summaryrefslogtreecommitdiff
path: root/vcs-svn/svndiff.c
diff options
context:
space:
mode:
authorJonathan Nieder <jrnieder@gmail.com>2012-07-06 03:21:09 (GMT)
committerJonathan Nieder <jrnieder@gmail.com>2012-07-06 04:26:53 (GMT)
commit96a60a87098534b74e3b98e636ec65daea9823a7 (patch)
treec4d107606b5d8cc1fedded2be798c9ec02d46ebf /vcs-svn/svndiff.c
parentc68038effed2f1031848330cca46e85fc79e3ab2 (diff)
downloadgit-96a60a87098534b74e3b98e636ec65daea9823a7.zip
git-96a60a87098534b74e3b98e636ec65daea9823a7.tar.gz
git-96a60a87098534b74e3b98e636ec65daea9823a7.tar.bz2
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>
Diffstat (limited to 'vcs-svn/svndiff.c')
-rw-r--r--vcs-svn/svndiff.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/vcs-svn/svndiff.c b/vcs-svn/svndiff.c
index e810d0c..74c97c4 100644
--- a/vcs-svn/svndiff.c
+++ b/vcs-svn/svndiff.c
@@ -77,8 +77,9 @@ static int error_short_read(struct line_buffer *input)
static int read_chunk(struct line_buffer *delta, off_t *delta_len,
struct strbuf *buf, size_t len)
{
+ assert(*delta_len >= 0);
strbuf_reset(buf);
- if (len > *delta_len ||
+ if (len > (uintmax_t) *delta_len ||
buffer_read_binary(delta, buf, len) != len)
return error_short_read(delta);
*delta_len -= buf->len;
@@ -290,7 +291,7 @@ error_out:
int svndiff0_apply(struct line_buffer *delta, off_t delta_len,
struct sliding_view *preimage, FILE *postimage)
{
- assert(delta && preimage && postimage);
+ assert(delta && preimage && postimage && delta_len >= 0);
if (read_magic(delta, &delta_len))
return -1;