diff mbox

[PULL,2/2] arm_gicv3: Add assert()s to tell Coverity that offsets are aligned

Message ID 1468947815-9900-3-git-send-email-peter.maydell@linaro.org
State Accepted
Commit acd82796211041c5af43c8c523b85d250c2ccebe
Headers show

Commit Message

Peter Maydell July 19, 2016, 5:03 p.m. UTC
Coverity complains that the GICR_IPRIORITYR case in gicv3_readl()
can overflow an array, because it doesn't know that the offsets
passed to that function must be word aligned. Add some assert()s
which hopefully tell Coverity that this isn't possible.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

Message-id: 1468261372-17508-1-git-send-email-peter.maydell@linaro.org
---
 hw/intc/arm_gicv3_redist.c | 4 ++++
 1 file changed, 4 insertions(+)

-- 
1.9.1
diff mbox

Patch

diff --git a/hw/intc/arm_gicv3_redist.c b/hw/intc/arm_gicv3_redist.c
index 2f60096..77e5cfa 100644
--- a/hw/intc/arm_gicv3_redist.c
+++ b/hw/intc/arm_gicv3_redist.c
@@ -420,6 +420,8 @@  MemTxResult gicv3_redist_read(void *opaque, hwaddr offset, uint64_t *data,
     MemTxResult r;
     int cpuidx;
 
+    assert((offset & (size - 1)) == 0);
+
     /* This region covers all the redistributor pages; there are
      * (for GICv3) two 64K pages per CPU. At the moment they are
      * all contiguous (ie in this one region), though we might later
@@ -468,6 +470,8 @@  MemTxResult gicv3_redist_write(void *opaque, hwaddr offset, uint64_t data,
     MemTxResult r;
     int cpuidx;
 
+    assert((offset & (size - 1)) == 0);
+
     /* This region covers all the redistributor pages; there are
      * (for GICv3) two 64K pages per CPU. At the moment they are
      * all contiguous (ie in this one region), though we might later