]> Git Repo - qemu.git/commitdiff
arm_gicv3: Add assert()s to tell Coverity that offsets are aligned
authorPeter Maydell <[email protected]>
Mon, 11 Jul 2016 18:22:52 +0000 (19:22 +0100)
committerPeter Maydell <[email protected]>
Tue, 19 Jul 2016 16:56:27 +0000 (17:56 +0100)
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 <[email protected]>
Message-id: 1468261372[email protected]

hw/intc/arm_gicv3_redist.c

index 2f60096e6e34cb5536c4a8bc6494522778ba0df3..77e5cfa327b424e9091e954a1f75273c3e075e10 100644 (file)
@@ -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
This page took 0.033655 seconds and 4 git commands to generate.