DragonFlyBSD Kernel Audit
DF-1073 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/bus/isa/pnp.c b/sys/bus/isa/pnp.c
--- a/sys/bus/isa/pnp.c
+++ b/sys/bus/isa/pnp.c
@@ -335,13 +335,13 @@
 			case PNP_QUIRK_EXTRA_IO:
 				if (config == NULL)
 					break;
-                                if (qp->arg1 != 0) {
+                                if (qp->arg1 != 0 && config->ic_nport < ISA_NPORT) {
                                         config->ic_nport++;
                                         config->ic_port[config->ic_nport - 1] = config->ic_port[0];
                                         config->ic_port[config->ic_nport - 1].ir_start += qp->arg1;
                                         config->ic_port[config->ic_nport - 1].ir_end += qp->arg1;
                                 }
-                                if (qp->arg2 != 0) {
+                                if (qp->arg2 != 0 && config->ic_nport < ISA_NPORT) {
                                         config->ic_nport++;
                                         config->ic_port[config->ic_nport - 1] = config->ic_port[0];
                                         config->ic_port[config->ic_nport - 1].ir_start += qp->arg2;