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];