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