提交 04cef49e 编写于 作者: C Cong Ding 提交者: 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: NCong Ding <dinggnu@gmail.com>
Reviewed-by: NRichard Mortimer <richm@oldelvet.org.uk>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 9a928415
...@@ -554,10 +554,8 @@ static void __init sbus_iommu_init(struct platform_device *op) ...@@ -554,10 +554,8 @@ static void __init sbus_iommu_init(struct platform_device *op)
regs = pr->phys_addr; regs = pr->phys_addr;
iommu = kzalloc(sizeof(*iommu), GFP_ATOMIC); iommu = kzalloc(sizeof(*iommu), GFP_ATOMIC);
if (!iommu)
goto fatal_memory_error;
strbuf = kzalloc(sizeof(*strbuf), GFP_ATOMIC); strbuf = kzalloc(sizeof(*strbuf), GFP_ATOMIC);
if (!strbuf) if (!iommu || !strbuf)
goto fatal_memory_error; goto fatal_memory_error;
op->dev.archdata.iommu = iommu; op->dev.archdata.iommu = iommu;
...@@ -656,6 +654,8 @@ static void __init sbus_iommu_init(struct platform_device *op) ...@@ -656,6 +654,8 @@ static void __init sbus_iommu_init(struct platform_device *op)
return; return;
fatal_memory_error: fatal_memory_error:
kfree(iommu);
kfree(strbuf);
prom_printf("sbus_iommu_init: Fatal memory allocation error.\n"); prom_printf("sbus_iommu_init: Fatal memory allocation error.\n");
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册