DragonFlyBSD Kernel Audit
DF-2035 / fix.diff
← back to finding ↓ download raw
--- /tmp/orig/dev/drm/amd/powerplay/hwmgr/vega20_thermal.c	2026-07-23 11:54:56.694859000 +0000
+++ dev/drm/amd/powerplay/hwmgr/vega20_thermal.c	2026-07-23 11:57:17.676284000 +0000
@@ -126,6 +126,8 @@
 	if (ret)
 		return ret;
 
+	if (pp_table->FanMaximumRpm == 0)
+		return -EINVAL;
 	percent = current_rpm * 100 / pp_table->FanMaximumRpm;
 
 	*speed = percent > 100 ? 100 : percent;
@@ -199,6 +201,8 @@
 	}
 
 	crystal_clock_freq = amdgpu_asic_get_xclk((struct amdgpu_device *)hwmgr->adev);
+	if (speed > UINT_MAX / 8)
+		return -EINVAL;
 	tach_period = 60 * crystal_clock_freq * 10000 / (8 * speed);
 	WREG32_SOC15(THM, 0, mmCG_TACH_CTRL,
 			REG_SET_FIELD(RREG32_SOC15(THM, 0, mmCG_TACH_CTRL),