Commit 04cef49e authored by Cong Ding's avatar Cong Ding Committed by David S. Miller

sparc: kernel/sbus.c: fix memory leakage

The variable iommu and strbuf are not freed properly if it goes to error.
Signed-off-by: default avatarCong Ding <dinggnu@gmail.com>
Reviewed-by: default avatarRichard Mortimer <richm@oldelvet.org.uk>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 9a928415
......@@ -554,10 +554,8 @@ static void __init sbus_iommu_init(struct platform_device *op)
regs = pr->phys_addr;
iommu = kzalloc(sizeof(*iommu), GFP_ATOMIC);
if (!iommu)
goto fatal_memory_error;
strbuf = kzalloc(sizeof(*strbuf), GFP_ATOMIC);
if (!strbuf)
if (!iommu || !strbuf)
goto fatal_memory_error;
op->dev.archdata.iommu = iommu;
......@@ -656,6 +654,8 @@ static void __init sbus_iommu_init(struct platform_device *op)
return;
fatal_memory_error:
kfree(iommu);
kfree(strbuf);
prom_printf("sbus_iommu_init: Fatal memory allocation error.\n");
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment