hwmon: (acpi_power_meter) Fix potential memory leak in acpi_power_meter_add()
[ Upstream commit 8b97f9922211c44a739c5cbd9502ecbb9f17f6d1 ]
Although it rarely happens, we should call free_capabilities()
if error happens after read_capabilities() to free allocated strings.
Fixes: de584afa5e ("hwmon driver for ACPI 4.0 power meters")
Signed-off-by: Misono Tomohiro <misono.tomohiro@jp.fujitsu.com>
Link: https://lore.kernel.org/r/20200625043242.31175-1-misono.tomohiro@jp.fujitsu.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
cbec0023eb
commit
e210d910f0
@@ -896,7 +896,7 @@ static int acpi_power_meter_add(struct acpi_device *device)
|
|||||||
|
|
||||||
res = setup_attrs(resource);
|
res = setup_attrs(resource);
|
||||||
if (res)
|
if (res)
|
||||||
goto exit_free;
|
goto exit_free_capability;
|
||||||
|
|
||||||
resource->hwmon_dev = hwmon_device_register(&device->dev);
|
resource->hwmon_dev = hwmon_device_register(&device->dev);
|
||||||
if (IS_ERR(resource->hwmon_dev)) {
|
if (IS_ERR(resource->hwmon_dev)) {
|
||||||
@@ -909,6 +909,8 @@ static int acpi_power_meter_add(struct acpi_device *device)
|
|||||||
|
|
||||||
exit_remove:
|
exit_remove:
|
||||||
remove_attrs(resource);
|
remove_attrs(resource);
|
||||||
|
exit_free_capability:
|
||||||
|
free_capabilities(resource);
|
||||||
exit_free:
|
exit_free:
|
||||||
kfree(resource);
|
kfree(resource);
|
||||||
exit:
|
exit:
|
||||||
|
|||||||
Reference in New Issue
Block a user