DragonFlyBSD Kernel Audit
DF-1265 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/drm/drm_dp_mst_topology.c b/sys/dev/drm/drm_dp_mst_topology.c
--- a/sys/dev/drm/drm_dp_mst_topology.c
+++ b/sys/dev/drm/drm_dp_mst_topology.c
@@ -443,6 +443,9 @@
 	if (idx > raw->curlen)
 		goto fail_len;
 
+	if (repmsg->u.remote_dpcd_read_ack.num_bytes >
+	    (int)sizeof(repmsg->u.remote_dpcd_read_ack.bytes))
+		goto fail_len;
 	memcpy(repmsg->u.remote_dpcd_read_ack.bytes, &raw->msg[idx], repmsg->u.remote_dpcd_read_ack.num_bytes);
 	return true;
 fail_len: