On Thu, 2026-10-01 at 10:22 +0800, Tao Ding wrote:
> 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 +

Isn't K230_DECOMP_GZIP_BLOCK_SIZE still a 32-bit value, should it be a
ULL?

>             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)

This should probably be it's own patch

Alistair

>  {
>      s->input.current_offset = 0;
>  

Reply via email to