From d3bafe32ca47bc3872837c1fe7874f9913de103f Mon Sep 17 00:00:00 2001 From: Jeffy Chen Date: Wed, 3 Feb 2016 18:13:55 +0800 Subject: [PATCH] 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 --- common/image-sparse.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 @@ static unsigned int sparse_block_size_to_storage(unsigned int size, 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) -- 2.7.4