DF-5646 / fix.diff
--- a/sys/bus/isa/isahint.c 2026-10-09 05:50:56.110659360 +0000 +++ b/sys/bus/isa/isahint.c 2026-10-09 05:50:56.130659100 +0000 @@ -60,17 +60,18 @@ count = 0; resource_int_value(name, unit, "port", &start); resource_int_value(name, unit, "portsize", &count); - if (start > 0 || count > 0) + if ((start > 0 || count > 0) && start >= 0 && count >= 0) bus_set_resource(child, SYS_RES_IOPORT, 0, start, count, -1); start = 0; count = 0; resource_int_value(name, unit, "maddr", &start); resource_int_value(name, unit, "msize", &count); - if (start > 0 || count > 0) + if ((start > 0 || count > 0) && start >= 0 && count >= 0) bus_set_resource(child, SYS_RES_MEMORY, 0, start, count, -1); - if (resource_int_value(name, unit, "irq", &start) == 0 && start > 0) { + if (resource_int_value(name, unit, "irq", &start) == 0 && + start > 0 && start < 16) { bus_set_resource(child, SYS_RES_IRQ, 0, start, 1, machintr_legacy_intr_cpuid(start)); } |