DragonFlyBSD Kernel Audit
DF-1480 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/acpica/acpi_cpu_pstate.c b/sys/dev/acpica/acpi_cpu_pstate.c
--- a/sys/dev/acpica/acpi_cpu_pstate.c
+++ b/sys/dev/acpica/acpi_cpu_pstate.c
@@ -1259,6 +1259,10 @@
 	scount = acpi_pstate_count;
 
 	cnt = scount - sstart;
+	if (cnt < 0)
+		cnt = 0;
+	if (cnt > ACPI_NPSTATE_MAX)
+		cnt = ACPI_NPSTATE_MAX;
 	for (i = 0; i < cnt; ++i)
 		freqs[i] = acpi_pstates[sstart + i].st_freq;
 
@@ -1275,6 +1279,10 @@
 	scount = acpi_pstate_count;
 
 	cnt = scount - sstart;
+	if (cnt < 0)
+		cnt = 0;
+	if (cnt > ACPI_NPSTATE_MAX)
+		cnt = ACPI_NPSTATE_MAX;
 	for (i = 0; i < cnt; ++i)
 		power[i] = acpi_pstates[sstart + i].st_power;