⬢ DragonFlyBSD Kernel Audit
DF-3944 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/drm/amd/display/dc/core/dc_resource.c b/sys/dev/drm/amd/display/dc/core/dc_resource.c
index 5b42ec28..90d5c1cf 100644
--- a/sys/dev/drm/amd/display/dc/core/dc_resource.c
+++ b/sys/dev/drm/amd/display/dc/core/dc_resource.c
@@ -2152,6 +2152,9 @@ static void patch_gamut_packet_checksum(
 		ptr = &gamut_packet->sb[3];
 
-		for (i = 0; i <= gamut_packet->sb[1]; i++)
+		for (i = 0; i <= gamut_packet->sb[1]; i++) {
+			if (i >= sizeof(gamut_packet->sb) - 3)
+				break;
 			chk_sum += ptr[i];
+		}
 
 		gamut_packet->sb[2] = (uint8_t) (0x100 - chk_sum);