Message ID | 20170314075319.GB6111@mwanda |
---|---|
State | Accepted |
Headers | show |
Hi, On Tue, Mar 14, 2017 at 10:56:30AM +0300, Dan Carpenter wrote: > 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 <dan.carpenter@oracle.com> > > diff --git a/drivers/rtc/rtc-cpcap.c b/drivers/rtc/rtc-cpcap.c > index 7c6a3c3167bd..5d163be98e9f 100644 > --- a/drivers/rtc/rtc-cpcap.c > +++ b/drivers/rtc/rtc-cpcap.c > @@ -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) Acked-By: Sebastian Reichel <sre@kernel.org> -- Sebastian
On 14/03/2017 at 10:56:30 +0300, Dan Carpenter wrote: > 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 <dan.carpenter@oracle.com> > Applied, thanks.
diff --git a/drivers/rtc/rtc-cpcap.c b/drivers/rtc/rtc-cpcap.c index 7c6a3c3167bd..5d163be98e9f 100644 --- a/drivers/rtc/rtc-cpcap.c +++ b/drivers/rtc/rtc-cpcap.c @@ -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)
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 <dan.carpenter@oracle.com>