DragonFlyBSD Kernel Audit
DF-1406 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/disk/advansys/advlib.c b/sys/dev/disk/advansys/advlib.c
--- a/sys/dev/disk/advansys/advlib.c
+++ b/sys/dev/disk/advansys/advlib.c
@@ -1070,7 +1070,7 @@
 	 && (sync_data == ASYN_SDTR_DATA_FIX_PCI_REV_AB)) {
 		*period = *offset = 0;
 	} else {
-		*period = adv->sdtr_period_tbl[((sync_data >> 4) & 0xF)];
+		{ int sidx = ((sync_data >> 4) & 0xF); *period = (sidx < adv->sdtr_period_tbl_size) ? adv->sdtr_period_tbl[sidx] : 0; }
 		*offset = sync_data & 0xF;
 	}
 }