diff --git a/common/image-sparse.c b/common/image-sparse.c index ddf5772cf8..86ff5a04bb 100644 --- a/common/image-sparse.c +++ b/common/image-sparse.c @@ -59,7 +59,7 @@ void write_sparse_image( uint32_t bytes_written = 0; unsigned int chunk; unsigned int offset; - unsigned int chunk_data_sz; + uint64_t chunk_data_sz; uint32_t *fill_buf = NULL; uint32_t fill_val; sparse_header_t *sparse_header; @@ -130,7 +130,7 @@ void write_sparse_image( sizeof(chunk_header_t)); } - chunk_data_sz = sparse_header->blk_sz * chunk_header->chunk_sz; + chunk_data_sz = (uint64_t)sparse_header->blk_sz * (uint64_t)chunk_header->chunk_sz; blkcnt = chunk_data_sz / info->blksz; switch (chunk_header->chunk_type) { case CHUNK_TYPE_RAW: