Skip to content

Commit

Permalink
Dispatcher: add status checks to avoid NULL pointer dereference on fi…
Browse files Browse the repository at this point in the history
…eld objects

Reported-by: Kurt Kennett <kurt_kennett@hotmail.com>
Signed-off-by: Erik Kaneda <erik.kaneda@intel.com>
  • Loading branch information
Erik Kaneda committed Apr 17, 2020
1 parent 994fe94 commit 3244c1e
Showing 1 changed file with 13 additions and 4 deletions.
17 changes: 13 additions & 4 deletions source/components/dispatcher/dsfield.c
Expand Up @@ -682,12 +682,21 @@ AcpiDsCreateField (
Info.RegionNode = RegionNode;

Status = AcpiDsGetFieldNames (&Info, WalkState, Arg->Common.Next);
if (Info.RegionNode->Object->Region.SpaceId == ACPI_ADR_SPACE_PLATFORM_COMM &&
!(RegionNode->Object->Field.InternalPccBuffer
= ACPI_ALLOCATE_ZEROED(Info.RegionNode->Object->Region.Length)))
if (ACPI_FAILURE (Status))
{
return_ACPI_STATUS (Status);
}

if (Info.RegionNode->Object->Region.SpaceId == ACPI_ADR_SPACE_PLATFORM_COMM)
{
return_ACPI_STATUS (AE_NO_MEMORY);
RegionNode->Object->Field.InternalPccBuffer =
ACPI_ALLOCATE_ZEROED(Info.RegionNode->Object->Region.Length);
if (!RegionNode->Object->Field.InternalPccBuffer)
{
return_ACPI_STATUS (AE_NO_MEMORY);
}
}

return_ACPI_STATUS (Status);
}

Expand Down

0 comments on commit 3244c1e

Please sign in to comment.