lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 13 Nov 2006 16:42:56 -0800 From: Andrew Morton <akpm@...l.org> To: Adrian Bunk <bunk@...sta.de> Cc: mingo@...hat.com, linux-kernel@...r.kernel.org Subject: Re: [2.6 patch] arch/i386/kernel/io_apic.c: handle a negative return value On Sun, 12 Nov 2006 18:48:26 +0100 Adrian Bunk <bunk@...sta.de> wrote: > The Coverity checker noted that bad things might happen if > find_isa_irq_apic() returned -1. > > Signed-off-by: Adrian Bunk <bunk@...sta.de> > > --- linux-2.6/arch/i386/kernel/io_apic.c.old 2006-11-12 18:41:24.000000000 +0100 > +++ linux-2.6/arch/i386/kernel/io_apic.c 2006-11-12 18:42:00.000000000 +0100 > @@ -2160,7 +2160,8 @@ static inline void unlock_ExtINT_logic(v > > pin = find_isa_irq_pin(8, mp_INT); > apic = find_isa_irq_apic(8, mp_INT); > - if (pin == -1) > + > + if ((pin == -1) || (apic == -1)) > return; > I dunno about this. For some reason I don't trust the apic code much. At present if find_isa_irq_apic() fails we at least have a chance of blundering into a nnice oops or something. By adding correct error-checking we increase the chance of things just silently not working. So let's see what this does... From: Adrian Bunk <bunk@...sta.de> The Coverity checker noted that bad things might happen if find_isa_irq_apic() returned -1. Signed-off-by: Adrian Bunk <bunk@...sta.de> Cc: Andi Kleen <ak@...e.de> Signed-off-by: Andrew Morton <akpm@...l.org> --- arch/i386/kernel/io_apic.c | 10 +++++++++- 1 files changed, 9 insertions(+), 1 deletion(-) diff -puN arch/i386/kernel/io_apic.c~arch-i386-kernel-io_apicc-handle-a-negative-return-value arch/i386/kernel/io_apic.c --- a/arch/i386/kernel/io_apic.c~arch-i386-kernel-io_apicc-handle-a-negative-return-value +++ a/arch/i386/kernel/io_apic.c @@ -2166,9 +2166,17 @@ static inline void unlock_ExtINT_logic(v unsigned char save_control, save_freq_select; pin = find_isa_irq_pin(8, mp_INT); + if (pin == -1) { + printk(KERN_ERR "unlock_ExtINT_logic: find_isa_irq_pin() + "failed\n"); + return; + } apic = find_isa_irq_apic(8, mp_INT); - if (pin == -1) + if (apic == -1) { + printk(KERN_ERR "unlock_ExtINT_logic: find_isa_irq_apic() + "failed\n"); return; + } entry0 = ioapic_read_entry(apic, pin); clear_IO_APIC_pin(apic, pin); _ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists