DragonFlyBSD Kernel Audit
DF-2379 / 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,9 +1259,17 @@
 	scount = acpi_pstate_count;
 
 	cnt = scount - sstart;
+	if (cnt < 0)
+		cnt = 0;
+	else if (cnt > ACPI_NPSTATE_MAX)
+		cnt = ACPI_NPSTATE_MAX;
+	for (i = 0; i < cnt; ++i)
+		power[i] = acpi_pstates[sstart + i].st_power;
+	return sysctl_handle_opaque(oidp, power, cnt * sizeof(power[0]), req);
+		cnt = ACPI_NPSTATE_MAX;
 	for (i = 0; i < cnt; ++i)
 		freqs[i] = acpi_pstates[sstart + i].st_freq;
-
+	return sysctl_handle_opaque(oidp, freqs, cnt * sizeof(freqs[0]), req);
 	return sysctl_handle_opaque(oidp, freqs, cnt * sizeof(freqs[0]), req);
 }