diff mbox

[U-Boot] x86: Fix out of bounds irq handlers access

Message ID 1421083045-13122-1-git-send-email-sronsse@gmail.com
State Accepted
Delegated to: Simon Glass
Headers show

Commit Message

Sebastien Ronsse Jan. 12, 2015, 5:17 p.m. UTC
Using coreboot-x86_defconfig, the following error occurred prior to this modification:
CC	arch/x86/lib/interrupts
arch/x86/lib/interrupts.c: In function ‘do_irqinfo’:
arch/x86/lib/interrupts.c:134:24: error: iteration 16u invokes undefined behavior [-Werror=aggressive-loop-optimizations]
   if (irq_handlers[irq].handler != NULL) {
                        ^
arch/x86/lib/interrupts.c:133:2: note: containing loop
  for (irq = 0; irq <= CONFIG_SYS_NUM_IRQS; irq++) {
  ^
cc1: all warnings being treated as errors
scripts/Makefile.build:275: recipe for target 'arch/x86/lib/interrupts.o' failed
make[1]: *** [arch/x86/lib/interrupts.o] Error 1
Makefile:1093: recipe for target 'arch/x86/lib' failed
make: *** [arch/x86/lib] Error 2

Signed-off-by: Sebastien Ronsse <sronsse@gmail.com>
---
 arch/x86/lib/interrupts.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Simon Glass Jan. 15, 2015, 4:25 a.m. UTC | #1
On 12 January 2015 at 18:41, Simon Glass <sjg@chromium.org> wrote:
> On 12 January 2015 at 09:17, Sebastien Ronsse <sronsse@gmail.com> wrote:
>> Using coreboot-x86_defconfig, the following error occurred prior to this modification:
>> CC      arch/x86/lib/interrupts
>> arch/x86/lib/interrupts.c: In function ‘do_irqinfo’:
>> arch/x86/lib/interrupts.c:134:24: error: iteration 16u invokes undefined behavior [-Werror=aggressive-loop-optimizations]
>>    if (irq_handlers[irq].handler != NULL) {
>>                         ^
>> arch/x86/lib/interrupts.c:133:2: note: containing loop
>>   for (irq = 0; irq <= CONFIG_SYS_NUM_IRQS; irq++) {
>>   ^
>> cc1: all warnings being treated as errors
>> scripts/Makefile.build:275: recipe for target 'arch/x86/lib/interrupts.o' failed
>> make[1]: *** [arch/x86/lib/interrupts.o] Error 1
>> Makefile:1093: recipe for target 'arch/x86/lib' failed
>> make: *** [arch/x86/lib] Error 2
>>
>> Signed-off-by: Sebastien Ronsse <sronsse@gmail.com>
>> ---
>>  arch/x86/lib/interrupts.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> Thanks!
>
> Acked-by: Simon Glass <sjg@chromium.org>
>
> Also for reference:
>
> https://chromium-review.googlesource.com/#/c/218562/

Applied to u-boot-x86, thanks!
diff mbox

Patch

diff --git a/arch/x86/lib/interrupts.c b/arch/x86/lib/interrupts.c
index 6bb22d2..146ad11 100644
--- a/arch/x86/lib/interrupts.c
+++ b/arch/x86/lib/interrupts.c
@@ -130,7 +130,7 @@  int do_irqinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 	printf("Interrupt-Information:\n");
 	printf("Nr  Routine   Arg       Count\n");
 
-	for (irq = 0; irq <= CONFIG_SYS_NUM_IRQS; irq++) {
+	for (irq = 0; irq < CONFIG_SYS_NUM_IRQS; irq++) {
 		if (irq_handlers[irq].handler != NULL) {
 			printf("%02d  %08lx  %08lx  %d\n",
 					irq,