From: Sage Weil Date: Mon, 3 Feb 2014 16:54:14 +0000 (-0800) Subject: client: use 64-bit value in sync read eof logic X-Git-Tag: v0.76~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=7ff2b541c24d1c81c3bcfbcb347694c2097993d7;p=ceph.git client: use 64-bit value in sync read eof logic 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 Reviewed-by: John Spray --- diff --git a/src/client/Client.cc b/src/client/Client.cc index db050b94d895..236814719fe4 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -5971,7 +5971,7 @@ int Client::_read_sync(Fh *f, uint64_t off, uint64_t len, bufferlist *bl) 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);