aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/acpica/dsfield.c
diff options
context:
space:
mode:
authorErik Kaneda <erik.kaneda@intel.com>2020-05-04 17:46:52 -0700
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2020-05-09 10:55:54 +0200
commit6bfe5344b2956d0bee116f1c640aef05e5cddd76 (patch)
tree20c5b93f24b5643b3a11d690c44d374f18a7dfe7 /drivers/acpi/acpica/dsfield.c
parentACPICA: Disassembler: ignore AE_ALREADY_EXISTS status when parsing create operators (diff)
downloadlinux-dev-6bfe5344b2956d0bee116f1c640aef05e5cddd76.tar.xz
linux-dev-6bfe5344b2956d0bee116f1c640aef05e5cddd76.zip
ACPICA: Dispatcher: add status checks
ACPICA commit 3244c1eeba9f9fb9ccedb875f7923a3d85e0c6aa The status chekcs are used to to avoid NULL pointer dereference on field objects Link: https://github.com/acpica/acpica/commit/3244c1ee Reported-by: Kurt Kennett <kurt_kennett@hotmail.com> Signed-off-by: Erik Kaneda <erik.kaneda@intel.com> Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/acpi/acpica/dsfield.c')
-rw-r--r--drivers/acpi/acpica/dsfield.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/drivers/acpi/acpica/dsfield.c b/drivers/acpi/acpica/dsfield.c
index 0189b5d4e3a3..fa768b3a989e 100644
--- a/drivers/acpi/acpica/dsfield.c
+++ b/drivers/acpi/acpica/dsfield.c
@@ -517,13 +517,20 @@ acpi_ds_create_field(union acpi_parse_object *op,
info.region_node = region_node;
status = acpi_ds_get_field_names(&info, walk_state, arg->common.next);
+ if (ACPI_FAILURE(status)) {
+ return_ACPI_STATUS(status);
+ }
+
if (info.region_node->object->region.space_id ==
- ACPI_ADR_SPACE_PLATFORM_COMM
- && !(region_node->object->field.internal_pcc_buffer =
- ACPI_ALLOCATE_ZEROED(info.region_node->object->region.
- length))) {
- return_ACPI_STATUS(AE_NO_MEMORY);
+ ACPI_ADR_SPACE_PLATFORM_COMM) {
+ region_node->object->field.internal_pcc_buffer =
+ ACPI_ALLOCATE_ZEROED(info.region_node->object->region.
+ length);
+ if (!region_node->object->field.internal_pcc_buffer) {
+ return_ACPI_STATUS(AE_NO_MEMORY);
+ }
}
+
return_ACPI_STATUS(status);
}