fastboot: sparse: fix sparse blocks calculation
It may overflow in sparse_block_size_to_storage, use uint64_t instead in
the calculation.
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
diff --git a/common/image-sparse.c b/common/image-sparse.c
index dffe844..2433192 100644
--- a/common/image-sparse.c
+++ b/common/image-sparse.c
@@ -64,7 +64,8 @@
sparse_storage_t *storage,
sparse_header_t *sparse)
{
- return size * sparse->blk_sz / storage->block_sz;
+ return (unsigned int)lldiv((uint64_t)size * sparse->blk_sz,
+ storage->block_sz);
}
static bool sparse_chunk_has_buffer(chunk_header_t *chunk)