⬢ DragonFlyBSD Kernel Audit
DF-4779 / fix.diff
← back to finding ↓ download raw
--- a/sys/dev/powermng/corecstat/corecstat.c
+++ b/sys/dev/powermng/corecstat/corecstat.c
@@ -180,6 +180,9 @@ static int
 corecstat_probe(device_t dev)
 {
 	int cpu_family, cpu_model;
 
 	if (resource_disabled("corecstat", 0))
 		return (ENXIO);
+
+	if (CPUID_TO_FAMILY(cpu_id) != 0x06)
+		return (ENXIO);
 
 	cpu_model = CPUID_TO_MODEL(cpu_id);
 	cpu_family = CPUID_TO_FAMILY(cpu_id);
@@ -256,6 +259,10 @@ corecstat_attach(device_t dev)
 	cpu_model = CPUID_TO_MODEL(cpu_id);
 	cpu_family = CPUID_TO_FAMILY(cpu_id);
 
+	/* Belt and suspenders: probe() already rejected non-06h families. */
+	if (cpu_family != 0x06)
+		return (ENXIO);
+
 	if (cpu_family == 0x06) {
 		switch (cpu_model) {
 		/* ATOM */