On 6/19/24 11:35 AM, Jamin Lin wrote:
Fix coverity defect: DIVIDE_BY_ZERO.

Signed-off-by: Jamin Lin <jamin_...@aspeedtech.com>


I have rewritten the commit log :

    aspeed/soc: Fix possible divide by zero
Coverity reports a possible DIVIDE_BY_ZERO issue regarding the
    "ram_size" object property. This can not happen because RAM has
    predefined valid sizes per SoC. Nevertheless, add a test to
    close the issue.

    Fixes: Coverity CID 1547113

with that,

Reviewed-by: Cédric Le Goater <c...@redhat.com>

Thanks,

C.



---
  hw/arm/aspeed_ast27x0.c | 6 ++++++
  1 file changed, 6 insertions(+)

diff --git a/hw/arm/aspeed_ast27x0.c b/hw/arm/aspeed_ast27x0.c
index b6876b4862..d14a46df6f 100644
--- a/hw/arm/aspeed_ast27x0.c
+++ b/hw/arm/aspeed_ast27x0.c
@@ -211,6 +211,12 @@ static void aspeed_ram_capacity_write(void *opaque, hwaddr 
addr, uint64_t data,
      ram_size = object_property_get_uint(OBJECT(&s->sdmc), "ram-size",
                                          &error_abort);
+ if (!ram_size) {
+        qemu_log_mask(LOG_GUEST_ERROR,
+                      "%s: ram_size is zero",  __func__);
+        return;
+    }
+
      /*
       * Emulate ddr capacity hardware behavior.
       * If writes the data to the address which is beyond the ram size,


Reply via email to