ACPI: CPPC: Fix reference count leak in acpi_cppc_processor_probe()
authorQiushi Wu <wu000273@umn.edu>
Wed, 27 May 2020 22:35:51 +0000 (17:35 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 17 Jun 2020 14:40:28 +0000 (16:40 +0200)
commit 4d8be4bc94f74bb7d096e1c2e44457b530d5a170 upstream.

kobject_init_and_add() takes reference even when it fails.
If this function returns an error, kobject_put() must be called to
properly clean up the memory associated with the object. Previous
commit "b8eb718348b8" fixed a similar problem.

Fixes: 158c998ea44b ("ACPI / CPPC: add sysfs support to compute delivered performance")
Signed-off-by: Qiushi Wu <wu000273@umn.edu>
Cc: 4.10+ <stable@vger.kernel.org> # 4.10+
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/acpi/cppc_acpi.c

index a1a858a..f9b1a2a 100644 (file)
@@ -865,6 +865,7 @@ int acpi_cppc_processor_probe(struct acpi_processor *pr)
                        "acpi_cppc");
        if (ret) {
                per_cpu(cpc_desc_ptr, pr->id) = NULL;
+               kobject_put(&cpc_ptr->kobj);
                goto out_free;
        }