DragonFlyBSD Kernel Audit
DF-2517 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/disk/sili/sili.c b/sys/dev/disk/sili/sili.c
--- a/sys/dev/disk/sili/sili.c
+++ b/sys/dev/disk/sili/sili.c
@@ -1242,7 +1242,8 @@
 	struct sili_sge *sge;
 	int sgi;
 
-	KKASSERT(nsegs <= SILI_MAX_SGET);
+	KKASSERT(nsegs <= (SILI_MAX_SGET * 3 / 4));
+	/* DF-2517: PRB SGE uses 4-entry blocks (3 data + 1 link), so max 93 data entries */
 
 	sgi = 0;
 	sge = &ccb->ccb_prb->prb_sge[0];