diff --git a/contrib/libdiff/lib/diff_main.c b/contrib/libdiff/lib/diff_main.c --- a/contrib/libdiff/lib/diff_main.c +++ b/contrib/libdiff/lib/diff_main.c @@ -54,7 +54,8 @@ static int read_at(FILE *f, off_t at_pos, unsigned char *buf, size_t len) { - int r; + ssize_t r; + if (fseeko(f, at_pos, SEEK_SET) == -1) return errno; r = fread(buf, sizeof(char), len, f); @@ -173,7 +174,7 @@ buf_left, n_left); if (r) { *cmp = 0; - return r; + return (int)r; } p_left = buf_left; } else { @@ -186,7 +187,7 @@ buf_right, n_right); if (r) { *cmp = 0; - return r; + return (int)r; } p_right = buf_right; } else { @@ -196,7 +197,7 @@ r = buf_cmp(p_left, n_left, p_right, n_right, ignore_whitespace); if (r) { - *cmp = r; + *cmp = (int)r; return 0; }