It may overflow in sparse_block_size_to_storage, use uint64_t instead in
the calculation.

Signed-off-by: Jeffy Chen <jeffy.c...@rock-chips.com>

---

 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 542a8c4..0c07976 100644
--- a/common/image-sparse.c
+++ b/common/image-sparse.c
@@ -62,7 +62,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.1.4


_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to