rtc: cpcap: kfreeing devm allocated memory
Subsystems (2)
PATCH 1/1 rtc: cpcap: kfreeing devm allocated memory
We shouldn't kfree(rtc) because is devm_ managed memory. It leads to a double free.
Fixes dd3bf50b35e3 ("rtc: cpcap: new rtc driver")
Signed-off-by Dan Carpenter <[email protected]>
drivers/rtc/rtc-cpcap.c +1 -3
@@ -266,10 +266,8 @@ static int cpcap_rtc_probe(struct platform_device *pdev) rtc->rtc_dev =devm_rtc_device_register (dev,"cpcap_rtc" , &cpcap_rtc_ops,THIS_MODULE ); -if (IS_ERR (rtc->rtc_dev)) { -kfree (rtc); +if (IS_ERR (rtc->rtc_dev))return PTR_ERR (rtc->rtc_dev); - } err =cpcap_get_vendor (dev, rtc->regmap, &rtc->vendor);if (err)
Hi,
Quoted 12 lines · Dan Carpenter
We shouldn't kfree(rtc) because is
devm_managed memory. It leads to a double free.Fixes dd3bf50b35e3 ("rtc: cpcap: new rtc driver")Signed-off-by Dan Carpenter <[email protected]>drivers/rtc/rtc-cpcap.c +0
-0@@ -266,10 +266,8 @@ static int cpcap_rtc_probe(struct platform_device *pdev) rtc->rtc_dev = devm_rtc_device_register(dev, "cpcap_rtc",
drivers/rtc/rtc-cpcap.c static int cpcap_rtc_probe(struct platform_device *pdev) · line 273
Quoted 10 lines
drivers/rtc/rtc-cpcap.c +1
-3&cpcap_rtc_ops, THIS_MODULE); -if (IS_ERR (rtc->rtc_dev)) { -kfree (rtc); +if (IS_ERR (rtc->rtc_dev))return PTR_ERR (rtc->rtc_dev); - } err =cpcap_get_vendor (dev, rtc->regmap, &rtc->vendor);if (err)
-- Sebastian
Alexandre Belloni
AppliedQuoted 6 lines · Dan Carpenter
We shouldn't kfree(rtc) because is
devm_managed memory. It leads to a double free.Fixes dd3bf50b35e3 ("rtc: cpcap: new rtc driver")Signed-off-by Dan Carpenter <[email protected]>
Applied, thanks.
Signature · 3 lines
Alexandre Belloni, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com