⬢ DragonFlyBSD Kernel Audit
DF-4123 / fix.diff
← back to finding ↓ download raw
--- a/sys/dev/drm/i915/intel_bios.c
+++ b/sys/dev/drm/i915/intel_bios.c
@@ -1131,6 +1131,7 @@ parse_mipi_sequence(struct drm_i915_private *dev_priv,
 	u8 *data;
 	int index = 0;
+	u8 seq_id;
@@ -1134,7 +1135,11 @@ parse_mipi_sequence(struct drm_i915_private *dev_priv,
 	/* Parse the sequences, store pointers to each sequence. */
 	for (;;) {
-		u8 seq_id = *(data + index);
+		if (index >= seq_size)
+			goto err;
+
+		seq_id = *(data + index);
 		if (seq_id == MIPI_SEQ_END)
 			break;
# NOTE: authored against the read-only sys/ tree after verification; never applied there.