DragonFlyBSD Kernel Audit
DF-1799 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/drm/amd/powerplay/hwmgr/smu_helper.c b/sys/dev/drm/amd/powerplay/hwmgr/smu_helper.c
--- a/sys/dev/drm/amd/powerplay/hwmgr/smu_helper.c
+++ b/sys/dev/drm/amd/powerplay/hwmgr/smu_helper.c
@@ -386,14 +386,14 @@
 		struct phm_ppt_v1_voltage_lookup_table *lookup_table, uint16_t voltage)
 {
 	uint8_t count = (uint8_t) (lookup_table->count);
-	uint8_t i;
+	uint32_t i;
 
 	PP_ASSERT_WITH_CODE((NULL != lookup_table),
 			"Lookup Table empty.", return 0);
 	PP_ASSERT_WITH_CODE((0 != count),
 			"Lookup Table empty.", return 0);
 
-	for (i = 0; i < lookup_table->count; i++) {
+	for (i = 0; i < lookup_table->count && i < PP_ATOMCTRL_MAX_VOLTAGE_ENTRIES; i++) {
 		/* find first voltage equal or bigger than requested */
 		if (lookup_table->entries[i].us_vdd >= voltage)
 			return i;