DragonFlyBSD Kernel Audit
DF-1608 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/acpica/acpi_hp/acpi_hp.c b/sys/dev/acpica/acpi_hp/acpi_hp.c
--- a/sys/dev/acpica/acpi_hp/acpi_hp.c
+++ b/sys/dev/acpica/acpi_hp/acpi_hp.c
@@ -845,7 +845,8 @@
 		return (-EINVAL);
 	}
 	obj = out.Pointer;
-	if (!obj || obj->Type != ACPI_TYPE_BUFFER) {
+	if (!obj || obj->Type != ACPI_TYPE_BUFFER ||
+	    obj->Buffer.Length < 3 * sizeof(UINT32)) {
 		acpi_hp_free_buffer(&out);
 		return (-EINVAL);
 	}