DragonFlyBSD Kernel Audit
DF-1797 / 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
@@ -253,6 +253,9 @@
 	PP_ASSERT_WITH_CODE((NULL != vol_table),
 			"vol_table empty.", return -EINVAL);
 
+	if (dep_table->count > PP_ATOMCTRL_MAX_VOLTAGE_ENTRIES)
+		return -EINVAL;
+
 	vol_table->mask_low = 0;
 	vol_table->phase_delay = 0;
 	vol_table->count = dep_table->count;
@@ -281,6 +284,9 @@
 	PP_ASSERT_WITH_CODE((NULL != vol_table),
 			"vol_table empty.", return -EINVAL);
 
+	if (dep_table->count > PP_ATOMCTRL_MAX_VOLTAGE_ENTRIES)
+		return -EINVAL;
+
 	vol_table->mask_low = 0;
 	vol_table->phase_delay = 0;
 	vol_table->count = dep_table->count;
@@ -308,6 +314,9 @@
 	PP_ASSERT_WITH_CODE((NULL != vol_table),
 			"vol_table empty.", return -EINVAL);
 
+	if (lookup_table->count > PP_ATOMCTRL_MAX_VOLTAGE_ENTRIES)
+		return -EINVAL;
+
 	vol_table->mask_low = 0;
 	vol_table->phase_delay = 0;