DragonFlyBSD Kernel Audit
DF-2006 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/acpica/aibs/atk0110.c b/sys/dev/acpica/aibs/atk0110.c
--- a/sys/dev/acpica/aibs/atk0110.c
+++ b/sys/dev/acpica/aibs/atk0110.c
@@ -167,6 +167,11 @@
 	}
 
 	bp = b.Pointer;
+	if (bp->Package.Count < 1) {
+		device_printf(sc->sc_dev, "%s: invalid package\n", name);
+		AcpiOsFree(b.Pointer);
+		return;
+	}
 	o = bp->Package.Elements;
 	if (o[0].Type != ACPI_TYPE_INTEGER) {
 		device_printf(sc->sc_dev, "%s[0]: invalid type\n", name);