xen/acpi: Fix potential memory leak.
authorKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Tue, 19 Jun 2012 18:39:31 +0000 (14:39 -0400)
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Thu, 19 Jul 2012 19:51:42 +0000 (15:51 -0400)
Coverity points out that we do not free in one case the
pr_backup - and sure enough we forgot.

Found by Coverity (CID 401970)

Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
drivers/xen/xen-acpi-processor.c

index 7ff2569..b590ee0 100644 (file)
@@ -520,15 +520,18 @@ static int __init xen_acpi_processor_init(void)
 
                if (!pr_backup) {
                        pr_backup = kzalloc(sizeof(struct acpi_processor), GFP_KERNEL);
-                       memcpy(pr_backup, _pr, sizeof(struct acpi_processor));
+                       if (pr_backup)
+                               memcpy(pr_backup, _pr, sizeof(struct acpi_processor));
                }
                (void)upload_pm_data(_pr);
        }
        rc = check_acpi_ids(pr_backup);
-       if (rc)
-               goto err_unregister;
 
        kfree(pr_backup);
+       pr_backup = NULL;
+
+       if (rc)
+               goto err_unregister;
 
        return 0;
 err_unregister: