DragonFlyBSD Kernel Audit
DF-1798 / 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
@@ -467,6 +467,11 @@
 	/* search for leakage voltage ID 0xff01 ~ 0xff08 and sckl */
 	for (entry_id = 0; entry_id < table_info->vdd_dep_on_sclk->count; entry_id++) {
 		voltage_id = table_info->vdd_dep_on_sclk->entries[entry_id].vddInd;
+		if (voltage_id >= lookup_table->count) {
+			pr_debug("voltage_id %u exceeds lookup_table size %u\n",
+				 voltage_id, lookup_table->count);
+			continue;
+		}
 		if (lookup_table->entries[voltage_id].us_vdd == virtual_voltage_id)
 			break;
 	}