2014-02-11 23:50:46

by Rafael J. Wysocki

[permalink] [raw]
Subject: [PATCH] ACPI / container: Fix error code path in container_device_attach()

From: Rafael J. Wysocki <[email protected]>

To avoid leaking memory on errors from device_register(), do a
put_device() on the device object in question in the error code
path of container_device_attach().

Fixes: caa73ea158de (ACPI / hotplug / driver core: Handle containers in a special way)
Signed-off-by: Rafael J. Wysocki <[email protected]>
---

3.14 material.

Thanks!

---
drivers/acpi/container.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)

Index: linux-pm/drivers/acpi/container.c
===================================================================
--- linux-pm.orig/drivers/acpi/container.c
+++ linux-pm/drivers/acpi/container.c
@@ -82,9 +82,10 @@ static int container_device_attach(struc
ACPI_COMPANION_SET(dev, adev);
dev->release = acpi_container_release;
ret = device_register(dev);
- if (ret)
+ if (ret) {
+ put_device(dev);
return ret;
-
+ }
adev->driver_data = dev;
return 1;
}


2014-02-12 05:23:36

by Yasuaki Ishimatsu

[permalink] [raw]
Subject: Re: [PATCH] ACPI / container: Fix error code path in container_device_attach()

(2014/02/12 9:05), Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <[email protected]>
>
> To avoid leaking memory on errors from device_register(), do a
> put_device() on the device object in question in the error code
> path of container_device_attach().
>
> Fixes: caa73ea158de (ACPI / hotplug / driver core: Handle containers in a special way)
> Signed-off-by: Rafael J. Wysocki <[email protected]>
> ---

Looks good to me.

Reviewed-by: Yasuaki Ishimatsu <[email protected]>

Thanks,
Yasuaki Ishimatsu

>
> 3.14 material.
>
> Thanks!
>
> ---
> drivers/acpi/container.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> Index: linux-pm/drivers/acpi/container.c
> ===================================================================
> --- linux-pm.orig/drivers/acpi/container.c
> +++ linux-pm/drivers/acpi/container.c
> @@ -82,9 +82,10 @@ static int container_device_attach(struc
> ACPI_COMPANION_SET(dev, adev);
> dev->release = acpi_container_release;
> ret = device_register(dev);
> - if (ret)
> + if (ret) {
> + put_device(dev);
> return ret;
> -
> + }
> adev->driver_data = dev;
> return 1;
> }
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>