]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
ACPICA: Dispatcher: add status checks
authorErik Kaneda <erik.kaneda@intel.com>
Tue, 5 May 2020 00:46:52 +0000 (17:46 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 22 Jun 2020 07:32:21 +0000 (09:32 +0200)
[ Upstream commit 6bfe5344b2956d0bee116f1c640aef05e5cddd76 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/acpi/acpica/dsfield.c

index c901f5aec739abf4b8783fba3c68ac1eb0d04cef..5725baec60f3ffda1af20e64b543cf4797c0d713 100644 (file)
@@ -514,13 +514,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);
 }