DragonFlyBSD Kernel Audit
DF-1402 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/drm/radeon/trinity_dpm.c b/sys/dev/drm/radeon/trinity_dpm.c
index 1111111..2222222 100644
--- a/sys/dev/drm/radeon/trinity_dpm.c
+++ b/sys/dev/drm/radeon/trinity_dpm.c
@@ -1809,6 +1809,8 @@
 	for (i = 0; i < RADEON_MAX_VCE_LEVELS; i++) {
 		u32 sclk;
 		clock_array_index = rdev->pm.dpm.vce_states[i].clk_idx;
+		if (clock_array_index >= clock_info_array->ucNumEntries)
+			continue;
 		clock_info = (union pplib_clock_info *)
 			&clock_info_array->clockInfo[clock_array_index * clock_info_array->ucEntrySize];
 		sclk = le16_to_cpu(clock_info->sumo.usEngineClockLow);