⬢ DragonFlyBSD Kernel Audit
DF-5647 / fix.diff
← back to finding ↓ download raw
--- 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));
 	}