ACPI / container: Fix error code path in container_device_attach()
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 11 Feb 2014 23:52:49 +0000 (00:52 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 12 Feb 2014 13:55:16 +0000 (14:55 +0100)
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 <rafael.j.wysocki@intel.com>
Reviewed-by: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
drivers/acpi/container.c

index 0b6ae6eb5c4a8f3dad1a40ec4c2f9f6928322b09..368f9ddb8480777420b2d5633facfeb238db1e27 100644 (file)
@@ -79,9 +79,10 @@ static int container_device_attach(struct acpi_device *adev,
        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;
 }