DF-3832 / fix.diff
--- a/sys/dev/disk/trm/trm.c +++ b/sys/dev/disk/trm/trm.c @@ -3394,7 +3394,13 @@ PACB pACB; int rid = PCIR_BAR(0), i = 0, j = 0; u_int16_t adaptType = 0; - + + /* DF-3832: trm_eepromBuf[] has TRM_MAX_ADAPTER_NUM entries. */ + if (unit >= TRM_MAX_ADAPTER_NUM) { + kprintf("trm%d: too many adapters (max %d)\n", unit, + TRM_MAX_ADAPTER_NUM); + return (NULL); + } pACB = (PACB) device_get_softc(dev); if (!pACB) { kprintf("trm%d: cannot allocate ACB !\n", unit); |