2018-06-12 04:39:06

by Zhouyang Jia

[permalink] [raw]
Subject: [PATCH] ACPI : dock: add error handling for acpi_bus_get_device

When acpi_bus_get_device fails, the lack of error-handling code may
cause unexpected results.

This patch adds error-handling code after calling acpi_bus_get_device.

Signed-off-by: Zhouyang Jia <[email protected]>
---
drivers/acpi/dock.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
index e3fc1f0..02fc134 100644
--- a/drivers/acpi/dock.c
+++ b/drivers/acpi/dock.c
@@ -504,7 +504,9 @@ static ssize_t show_docked(struct device *dev,
struct dock_station *dock_station = dev->platform_data;
struct acpi_device *adev = NULL;

- acpi_bus_get_device(dock_station->handle, &adev);
+ if (acpi_bus_get_device(dock_station->handle, &adev))
+ return -ENODEV;
+
return snprintf(buf, PAGE_SIZE, "%u\n", acpi_device_enumerated(adev));
}
static DEVICE_ATTR(docked, S_IRUGO, show_docked, NULL);
--
2.7.4



2018-06-14 07:56:18

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: [PATCH] ACPI : dock: add error handling for acpi_bus_get_device

On Tue, Jun 12, 2018 at 6:38 AM, Zhouyang Jia <[email protected]> wrote:
> When acpi_bus_get_device fails, the lack of error-handling code may
> cause unexpected results.

It is perfectly predictable in this particular case: adev will be NULL
and acpi_device_enumerated(adev) will return false.

> This patch adds error-handling code after calling acpi_bus_get_device.

Which is not necessary.

Thanks,
Rafael