DragonFlyBSD Kernel Audit
DF-2481 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/disk/mpt/mpt.c b/sys/dev/disk/mpt/mpt.c
--- a/sys/dev/disk/mpt/mpt.c
+++ b/sys/dev/disk/mpt/mpt.c
@@ -2677,6 +2677,10 @@
 	 *
 	 */
 	/* total number of request areas we (can) allocate */
+	if (mpt->ioc_facts.RequestFrameSize == 0) {
+		mpt_prt(mpt, "IOCFACTS reports RequestFrameSize of 0; aborting attach\n");
+		return (EINVAL);
+	}
 	mpt->max_seg_cnt = MPT_MAX_REQUESTS(mpt) - 2;
 
 	/* converted to the number of chain areas possible */