| From 80512cb98b2a4ae11d5f5e5a58ca60c5d677cda3 Mon Sep 17 00:00:00 2001 |
| From: Misono Tomohiro <misono.tomohiro@jp.fujitsu.com> |
| Date: Thu, 25 Jun 2020 13:32:42 +0900 |
| Subject: [PATCH] hwmon: (acpi_power_meter) Fix potential memory leak in |
| acpi_power_meter_add() |
| |
| commit 8b97f9922211c44a739c5cbd9502ecbb9f17f6d1 upstream. |
| |
| Although it rarely happens, we should call free_capabilities() |
| if error happens after read_capabilities() to free allocated strings. |
| |
| Fixes: de584afa5e188 ("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: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/hwmon/acpi_power_meter.c b/drivers/hwmon/acpi_power_meter.c |
| index 4cf25458f0b9..740ac0a1b726 100644 |
| --- a/drivers/hwmon/acpi_power_meter.c |
| +++ b/drivers/hwmon/acpi_power_meter.c |
| @@ -883,7 +883,7 @@ static int acpi_power_meter_add(struct acpi_device *device) |
| |
| res = setup_attrs(resource); |
| if (res) |
| - goto exit_free; |
| + goto exit_free_capability; |
| |
| resource->hwmon_dev = hwmon_device_register(&device->dev); |
| if (IS_ERR(resource->hwmon_dev)) { |
| @@ -896,6 +896,8 @@ static int acpi_power_meter_add(struct acpi_device *device) |
| |
| exit_remove: |
| remove_attrs(resource); |
| +exit_free_capability: |
| + free_capabilities(resource); |
| exit_free: |
| kfree(resource); |
| exit: |
| -- |
| 2.27.0 |
| |