diff options
Diffstat (limited to 'lib/image-sparse.c')
-rw-r--r-- | lib/image-sparse.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/image-sparse.c b/lib/image-sparse.c index 0c31742ab6..c375c78d63 100644 --- a/lib/image-sparse.c +++ b/lib/image-sparse.c @@ -62,7 +62,8 @@ struct sparse_image_ctx { static int sparse_seek(struct sparse_image_ctx *si) { - unsigned int chunk_data_sz, payload; + uint64_t chunk_data_sz; + unsigned int payload; loff_t offs; int ret; @@ -94,7 +95,7 @@ again: return -errno; } - chunk_data_sz = si->sparse.blk_sz * si->chunk.chunk_sz; + chunk_data_sz = (uint64_t) si->sparse.blk_sz * si->chunk.chunk_sz; payload = si->chunk.total_sz - si->sparse.chunk_hdr_sz; si->processed_chunks++; @@ -190,7 +191,7 @@ out: } int sparse_image_read(struct sparse_image_ctx *si, void *buf, loff_t *pos, - size_t len, int *retlen) + size_t len, size_t *retlen) { size_t now; int ret, i; |