Commit 2a643893 authored by Devendra Naga's avatar Devendra Naga Committed by Linus Torvalds

drivers/rtc/rtc-spear.c: fix use-after-free in spear_rtc_remove()

`config' is freed and is then used in the rtc_device_unregister() call,
causing a kernel panic.
Signed-off-by: default avatarDevendra Naga <devendra.aaru@gmail.com>
Reviewed-by: default avatarViresh Kumar <viresh.linux@gmail.com>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Cc: <stable@vger.kernel.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent d8adde17
...@@ -458,12 +458,12 @@ static int __devexit spear_rtc_remove(struct platform_device *pdev) ...@@ -458,12 +458,12 @@ static int __devexit spear_rtc_remove(struct platform_device *pdev)
clk_disable(config->clk); clk_disable(config->clk);
clk_put(config->clk); clk_put(config->clk);
iounmap(config->ioaddr); iounmap(config->ioaddr);
kfree(config);
res = platform_get_resource(pdev, IORESOURCE_MEM, 0); res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (res) if (res)
release_mem_region(res->start, resource_size(res)); release_mem_region(res->start, resource_size(res));
platform_set_drvdata(pdev, NULL); platform_set_drvdata(pdev, NULL);
rtc_device_unregister(config->rtc); rtc_device_unregister(config->rtc);
kfree(config);
return 0; return 0;
} }
......
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