summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/image-sparse.c7
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;