DF-2589 / fix.diff
diff --git a/sys/dev/acpica/acpi_panasonic/acpi_panasonic.c b/sys/dev/acpica/acpi_panasonic/acpi_panasonic.c --- a/sys/dev/acpica/acpi_panasonic/acpi_panasonic.c +++ b/sys/dev/acpica/acpi_panasonic/acpi_panasonic.c @@ -274,9 +274,11 @@ ret = -1; buf.Length = ACPI_ALLOCATE_BUFFER; buf.Pointer = NULL; - AcpiEvaluateObject(h, "SINF", NULL, &buf); + if (ACPI_FAILURE(AcpiEvaluateObject(h, "SINF", NULL, &buf))) + return (ret); res = (ACPI_OBJECT *)buf.Pointer; - if (res->Type == ACPI_TYPE_PACKAGE) + if (res != NULL && res->Type == ACPI_TYPE_PACKAGE && + index < res->Package.Count) ret = res->Package.Elements[index].Integer.Value; AcpiOsFree(buf.Pointer); |