DragonFlyBSD Kernel Audit
DF-1190 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/raid/ciss/ciss.c b/sys/dev/raid/ciss/ciss.c
--- a/sys/dev/raid/ciss/ciss.c
+++ b/sys/dev/raid/ciss/ciss.c
@@ -1390,6 +1390,11 @@
 
 	    bus		= CISS_LUN_TO_BUS(cll->lun[i].logical.lun);
 	    target	= CISS_LUN_TO_TARGET(cll->lun[i].logical.lun);
+	    if (bus >= sc->ciss_max_logical_bus || target >= CISS_MAX_LOGICAL) {
+		ciss_printf(sc, "logical drive %d has out-of-range "
+			    "address bus %d target %d\n", i, bus, target);
+		continue;
+	    }
 	    ld		= &sc->ciss_logical[bus][target];
 
 	    ld->cl_address	= cll->lun[i];