hw/arm/armsse: Assert info->num_cpus is in-bounds in armsse_realize()
commit3f410039b79c0468e18142c6ddfede6f6f7b0427
authorPeter Maydell <peter.maydell@linaro.org>
Mon, 13 Jul 2020 14:37:16 +0000 (13 15:37 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Mon, 20 Jul 2020 10:35:17 +0000 (20 11:35 +0100)
treefa67606bc26bf02720fcbb43757760d894b7e8ee
parentcd07d7f9f5117954edd9a9bbd97b0442eecf5c49
hw/arm/armsse: Assert info->num_cpus is in-bounds in armsse_realize()

In armsse_realize() we have a loop over [0, info->num_cpus), which
indexes into various fixed-size arrays in the ARMSSE struct.  This
confuses Coverity, which warns that we might overrun those arrays
(CID 14303261430337143037114304141430430).  This can't
actually happen, because the info struct is always one of the entries
in the armsse_variants[] array and num_cpus is either 1 or 2; we also
already assert in armsse_init() that num_cpus is not too large.
However, adding an assert to armsse_realize() like the one in
armsse_init() should help Coverity figure out that these code paths
aren't possible.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-id: 20200713143716.9881-1-peter.maydell@linaro.org
hw/arm/armsse.c