* Return if array is out of bounds in icu_setup function.
authorDavid Rhodus <drhodus@dragonflybsd.org>
Fri, 20 Feb 2004 22:01:20 +0000 (22:01 +0000)
committerDavid Rhodus <drhodus@dragonflybsd.org>
Fri, 20 Feb 2004 22:01:20 +0000 (22:01 +0000)
Ref: FreeBSD PR 30857

sys/i386/isa/intr_machdep.c
sys/platform/pc32/isa/intr_machdep.c

index 530bcd6..8eeb15e 100644 (file)
@@ -35,7 +35,7 @@
  *
  *     from: @(#)isa.c 7.2 (Berkeley) 5/13/91
  * $FreeBSD: src/sys/i386/isa/intr_machdep.c,v 1.29.2.5 2001/10/14 06:54:27 luigi Exp $
- * $DragonFly: src/sys/i386/isa/Attic/intr_machdep.c,v 1.16 2004/02/11 18:34:40 dillon Exp $
+ * $DragonFly: src/sys/i386/isa/Attic/intr_machdep.c,v 1.17 2004/02/20 22:01:20 drhodus Exp $
  */
 /*
  * This file contains an aggregated module marked:
@@ -526,6 +526,7 @@ icu_setup(int intr, inthand2_t *handler, void *arg, u_int *maskptr, int flags)
        if ((u_int)intr >= ICU_LEN)     /* no 8259 SLAVE to ignore */
 #else
        if ((u_int)intr >= ICU_LEN || intr == ICU_SLAVEID)
+               return (EINVAL);
 #endif /* APIC_IO */
        if (intr_handler[intr] != isa_strayintr)
                return (EBUSY);
index 4d25163..470b025 100644 (file)
@@ -35,7 +35,7 @@
  *
  *     from: @(#)isa.c 7.2 (Berkeley) 5/13/91
  * $FreeBSD: src/sys/i386/isa/intr_machdep.c,v 1.29.2.5 2001/10/14 06:54:27 luigi Exp $
- * $DragonFly: src/sys/platform/pc32/isa/intr_machdep.c,v 1.16 2004/02/11 18:34:40 dillon Exp $
+ * $DragonFly: src/sys/platform/pc32/isa/intr_machdep.c,v 1.17 2004/02/20 22:01:20 drhodus Exp $
  */
 /*
  * This file contains an aggregated module marked:
@@ -526,6 +526,7 @@ icu_setup(int intr, inthand2_t *handler, void *arg, u_int *maskptr, int flags)
        if ((u_int)intr >= ICU_LEN)     /* no 8259 SLAVE to ignore */
 #else
        if ((u_int)intr >= ICU_LEN || intr == ICU_SLAVEID)
+               return (EINVAL);
 #endif /* APIC_IO */
        if (intr_handler[intr] != isa_strayintr)
                return (EBUSY);