DragonFlyBSD Kernel Audit
DF-1414 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/drm/amd/display/dc/bios/bios_parser2.c b/sys/dev/drm/amd/display/dc/bios/bios_parser2.c
--- a/sys/dev/drm/amd/display/dc/bios/bios_parser2.c
+++ b/sys/dev/drm/amd/display/dc/bios/bios_parser2.c
@@ -159,7 +159,10 @@
 	unsigned int count = 0;
 	unsigned int i;
 
-	for (i = 0; i < bp->object_info_tbl.v1_4->number_of_path; i++) {
+	uint8_t num_path = min(bp->object_info_tbl.v1_4->number_of_path,
+				(uint8_t)ARRAY_SIZE(bp->object_info_tbl.v1_4->display_path));
+
+	for (i = 0; i < num_path; i++) {
 		if (bp->object_info_tbl.v1_4->display_path[i].encoderobjid != 0)
 			count++;
 	}