commit d59c0cb27bc304bc11f9b1094c6eb85f248c7c5f from: Stefan Sperling date: Wed Oct 09 08:55:19 2019 UTC improve use of mixed size_t/off_t types in diff3.c's edscript() commit - b2338effff1d654d54ab1abfdebefee508ea1a6c commit + d59c0cb27bc304bc11f9b1094c6eb85f248c7c5f blob - 71163c14cea294194d32ea71e9334f4796fcb2c7 blob + e7951e14f2548e423ecb820f33291e316d6819ee --- lib/diff3.c +++ lib/diff3.c @@ -942,7 +942,7 @@ static const struct got_error * edscript(int n, struct diff3_state *d3s) { const struct got_error *err = NULL; - off_t k, len; + size_t k, len; char block[BUFSIZ+1]; for (; n > 0; n--) { @@ -959,10 +959,10 @@ edscript(int n, struct diff3_state *d3s) if (fseeko(d3s->fp[2], d3s->de[n].newo.from, SEEK_SET) == -1) return got_error_from_errno("fseek"); - k = d3s->de[n].newo.to - d3s->de[n].newo.from; + k = (size_t)(d3s->de[n].newo.to - d3s->de[n].newo.from); for (; k > 0; k -= len) { len = k > BUFSIZ ? BUFSIZ : k; - if (fread(block, 1, len, d3s->fp[2]) != (size_t)len) + if (fread(block, 1, len, d3s->fp[2]) != len) return got_ferror(d3s->fp[2], GOT_ERR_IO); block[len] = '\0'; err = diff_output(d3s->diffbuf, "%s", block);