[PATCH 4/4] cris: irq: stop loop from accessing array out of bound

From: Niklas Cassel
Date: Sat Nov 28 2015 - 13:26:50 EST


array "interrupt" only has 32 or 64 elements, depending on machine.

arch/cris/arch-v32/kernel/irq.c: In function âinit_IRQâ:
arch/cris/arch-v32/kernel/irq.c:475:3: warning: iteration 32u invokes undefined behavior [-Waggressive-loop-optimizations]
set_exception_vector(i, interrupt[j]);
^
arch/cris/arch-v32/kernel/irq.c:474:2: note: containing loop
for (i = FIRST_IRQ, j = 0; j < NBR_INTR_VECT; i++, j++) {
^

Signed-off-by: Niklas Cassel <nks@xxxxxxxxxxx>
---
arch/cris/arch-v32/kernel/irq.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/arch/cris/arch-v32/kernel/irq.c b/arch/cris/arch-v32/kernel/irq.c
index 6de8db6..b07da4b 100644
--- a/arch/cris/arch-v32/kernel/irq.c
+++ b/arch/cris/arch-v32/kernel/irq.c
@@ -471,9 +471,8 @@ init_IRQ(void)
irq_set_default_host(domain);
of_node_put(np);

- for (i = FIRST_IRQ, j = 0; j < NBR_INTR_VECT; i++, j++) {
+ for (i = FIRST_IRQ, j = 0; j < NBR_INTR_VECT && j < MACH_IRQS; i++, j++)
set_exception_vector(i, interrupt[j]);
- }

/* Mark Timer and IPI IRQs as CPU local */
irq_allocations[TIMER0_INTR_VECT - FIRST_IRQ].cpu = CPU_FIXED;
--
2.5.0

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/