Use hwaddr for address calculations to avoid 32-bit overflow and address truncation.
Resolves: Coverity CID 1685515, 1685517 Reported-by: Alistair Francis <[email protected]> Signed-off-by: Tao Ding <[email protected]> --- hw/misc/k230_decomp_gzip.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hw/misc/k230_decomp_gzip.c b/hw/misc/k230_decomp_gzip.c index 0d8a3b2d2e..54303c0e7f 100644 --- a/hw/misc/k230_decomp_gzip.c +++ b/hw/misc/k230_decomp_gzip.c @@ -53,13 +53,13 @@ static bool k230_decomp_gzip_write_mem(K230DecompGzipState *s, hwaddr addr, static hwaddr k230_decomp_gzip_output_addr(K230DecompGzipState *s) { return K230_DECOMP_GZIP_SRAM_OUT_BASE + - s->output.slot * K230_DECOMP_GZIP_BLOCK_SIZE + + (hwaddr) s->output.slot * K230_DECOMP_GZIP_BLOCK_SIZE + s->output.current_offset; } static hwaddr k230_decomp_gzip_input_addr(K230DecompGzipState *s) { - return s->input.slot * K230_DECOMP_GZIP_BLOCK_SIZE + + return (hwaddr) s->input.slot * K230_DECOMP_GZIP_BLOCK_SIZE + K230_DECOMP_GZIP_SRAM_IN_BASE; } @@ -102,7 +102,7 @@ static void k230_decomp_gzip_finish(K230DecompGzipState *s, bool crc_ok) } static bool k230_decomp_gzip_load_input(K230DecompGzipState *s, - uint32_t addr, uint32_t size) + hwaddr addr, uint32_t size) { s->input.current_offset = 0; -- 2.43.0
