summary refs log tree commit diff
path: root/drivers/acpi/acpica/psutils.c
diff options
context:
space:
mode:
authorColin Ian King <colin.king@canonical.com>2017-11-17 15:40:17 -0800
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2017-11-27 01:20:28 +0100
commit29ad1f88ab7dd6c220ff9f5b9faed718b443f4a4 (patch)
treeb2d3d236768804314dab98756e65ce823d16a76e /drivers/acpi/acpica/psutils.c
parentee470f08b07d6c3a07a8d9dd7d1817e68cdf3b86 (diff)
downloadlinux-29ad1f88ab7dd6c220ff9f5b9faed718b443f4a4.tar.gz
ACPICA: Avoid null pointer dereference on Op.
ACPICA commit 08a00639b0d6756e8ba1421419fc3728904651d9

The calls to acpi_os_acquire_object can result in a null being assigned
to Op (for example if a mutex acquire fails) which can lead to a
null pointer dereference on Op on the call to ASL_CV_TRANSFER_COMMENTS
(via function cv_transfer_comments). Move the block into the previous
block that checks for a null Op so that we never can call
cv_transfer_comments with a null Op.

Detected by: coverity_scan CID#1371660 ("Dereference after null check")

Link: https://github.com/acpica/acpica/commit/08a00639
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Erik Schmauss <erik.schmauss@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/acpi/acpica/psutils.c')
-rw-r--r--drivers/acpi/acpica/psutils.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/acpi/acpica/psutils.c b/drivers/acpi/acpica/psutils.c
index 02642760cb93..e15b636b1d4b 100644
--- a/drivers/acpi/acpica/psutils.c
+++ b/drivers/acpi/acpica/psutils.c
@@ -158,10 +158,10 @@ union acpi_parse_object *acpi_ps_alloc_op(u16 opcode, u8 *aml)
 		if (opcode == AML_SCOPE_OP) {
 			acpi_gbl_current_scope = op;
 		}
-	}
 
-	if (gbl_capture_comments) {
-		ASL_CV_TRANSFER_COMMENTS(op);
+		if (gbl_capture_comments) {
+			ASL_CV_TRANSFER_COMMENTS(op);
+		}
 	}
 
 	return (op);