The file size can jump to a value that is very much larger than our current
position (for example, it could be a disk image file that gets a sparse
write at a large offset). Use a 64-bit value so that 'some' doesn't
overflow.
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: John Spray <john.spray@inktank.com>
(cherry picked from commit
7ff2b541c24d1c81c3bcfbcb347694c2097993d7)
if (r >= 0 && r < wanted) {
if (pos < in->size) {
// zero up to known EOF
- int some = in->size - pos;
+ int64_t some = in->size - pos;
if (some > left)
some = left;
bufferptr z(some);