summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>2012-06-19 20:39:31 +0200
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>2012-07-19 21:51:42 +0200
commit17f9b896b06d314da890174584278dea8da7e0ce (patch)
tree122982da152fcadee9860d0f78323a09d26d2de4 /drivers
parentxen/mce: add .poll method for mcelog device driver (diff)
downloadlinux-17f9b896b06d314da890174584278dea8da7e0ce.tar.xz
linux-17f9b896b06d314da890174584278dea8da7e0ce.zip
xen/acpi: Fix potential memory leak.
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>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/xen/xen-acpi-processor.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/xen/xen-acpi-processor.c b/drivers/xen/xen-acpi-processor.c
index 7ff2569e17ae..b590ee067fcd 100644
--- a/drivers/xen/xen-acpi-processor.c
+++ b/drivers/xen/xen-acpi-processor.c
@@ -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: