target/xtensa: Correct assert condition in handle_interrupt()
In commitad18376b90
we added an assert that the level value was in-bounds for the array we're about to index into. However, the assert condition is wrong -- env->config->interrupt_vector is an array of uint32_t, so we should bounds check the index against ARRAY_SIZE(...), not against sizeof(). Resolves: Coverity CID 1507131 Fixes:ad18376b90
("target/xtensa: Assert that interrupt level is within bounds") Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Acked-by: Max Filippov <jcmvbkbc@gmail.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-id: 20240731172246.3682311-1-peter.maydell@linaro.org
This commit is contained in:
parent
55f9f4ee01
commit
5e8e4f098d
@ -171,7 +171,7 @@ static void handle_interrupt(CPUXtensaState *env)
|
||||
|
||||
if (level > 1) {
|
||||
/* env->config->nlevel check should have ensured this */
|
||||
assert(level < sizeof(env->config->interrupt_vector));
|
||||
assert(level < ARRAY_SIZE(env->config->interrupt_vector));
|
||||
|
||||
env->sregs[EPC1 + level - 1] = env->pc;
|
||||
env->sregs[EPS2 + level - 2] = env->sregs[PS];
|
||||
|
Loading…
Reference in New Issue
Block a user