Message ID | 20220511064954.3401381-1-yangyingliang@huawei.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | [-next] drivers: w1: use kfree_sensitive() | expand |
On Wed, May 11, 2022 at 02:49:54PM +0800, Yang Yingliang wrote: > Use kfree_sensitive() instead of open-coding it. > > Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> > --- > drivers/w1/w1.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/drivers/w1/w1.c b/drivers/w1/w1.c > index f2ae2e563dc5..a0a6c3c739d9 100644 > --- a/drivers/w1/w1.c > +++ b/drivers/w1/w1.c > @@ -73,8 +73,7 @@ static void w1_master_release(struct device *dev) > struct w1_master *md = dev_to_w1_master(dev); > > dev_dbg(dev, "%s: Releasing %s.\n", __func__, md->name); > - memset(md, 0, sizeof(struct w1_master) + sizeof(struct w1_bus_master)); > - kfree(md); > + kfree_sensitive(md); Does this actually change anything? Why is the memset being called here at all? thanks, greg k-h
Hi, On 2022/5/11 14:45, Greg KH wrote: > On Wed, May 11, 2022 at 02:49:54PM +0800, Yang Yingliang wrote: >> Use kfree_sensitive() instead of open-coding it. >> >> Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> >> --- >> drivers/w1/w1.c | 3 +-- >> 1 file changed, 1 insertion(+), 2 deletions(-) >> >> diff --git a/drivers/w1/w1.c b/drivers/w1/w1.c >> index f2ae2e563dc5..a0a6c3c739d9 100644 >> --- a/drivers/w1/w1.c >> +++ b/drivers/w1/w1.c >> @@ -73,8 +73,7 @@ static void w1_master_release(struct device *dev) >> struct w1_master *md = dev_to_w1_master(dev); >> >> dev_dbg(dev, "%s: Releasing %s.\n", __func__, md->name); >> - memset(md, 0, sizeof(struct w1_master) + sizeof(struct w1_bus_master)); >> - kfree(md); >> + kfree_sensitive(md); > Does this actually change anything? Why is the memset being called here > at all? It's no functional change and I got this by scripts/coccinelle/api/kfree_sensitive.cocci. I'm not sure why using memset() here. Thanks, Yang > > thanks, > > greg k-h > .
On Wed, May 11, 2022 at 03:25:52PM +0800, Yang Yingliang wrote: > Hi, > > On 2022/5/11 14:45, Greg KH wrote: > > On Wed, May 11, 2022 at 02:49:54PM +0800, Yang Yingliang wrote: > > > Use kfree_sensitive() instead of open-coding it. > > > > > > Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> > > > --- > > > drivers/w1/w1.c | 3 +-- > > > 1 file changed, 1 insertion(+), 2 deletions(-) > > > > > > diff --git a/drivers/w1/w1.c b/drivers/w1/w1.c > > > index f2ae2e563dc5..a0a6c3c739d9 100644 > > > --- a/drivers/w1/w1.c > > > +++ b/drivers/w1/w1.c > > > @@ -73,8 +73,7 @@ static void w1_master_release(struct device *dev) > > > struct w1_master *md = dev_to_w1_master(dev); > > > dev_dbg(dev, "%s: Releasing %s.\n", __func__, md->name); > > > - memset(md, 0, sizeof(struct w1_master) + sizeof(struct w1_bus_master)); > > > - kfree(md); > > > + kfree_sensitive(md); > > Does this actually change anything? Why is the memset being called here > > at all? > It's no functional change and I got this by > scripts/coccinelle/api/kfree_sensitive.cocci. That's an odd rule, and as you can see here, not always correct or needed. > I'm not sure why using memset() here. Then let's not make this change without figuring that out first please. thanks, greg k-h
On Wed, May 11, 2022 at 03:25:52PM +0800, Yang Yingliang wrote: > Hi, > > On 2022/5/11 14:45, Greg KH wrote: > > On Wed, May 11, 2022 at 02:49:54PM +0800, Yang Yingliang wrote: > > > Use kfree_sensitive() instead of open-coding it. > > > > > > Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> > > > --- > > > drivers/w1/w1.c | 3 +-- > > > 1 file changed, 1 insertion(+), 2 deletions(-) > > > > > > diff --git a/drivers/w1/w1.c b/drivers/w1/w1.c > > > index f2ae2e563dc5..a0a6c3c739d9 100644 > > > --- a/drivers/w1/w1.c > > > +++ b/drivers/w1/w1.c > > > @@ -73,8 +73,7 @@ static void w1_master_release(struct device *dev) > > > struct w1_master *md = dev_to_w1_master(dev); > > > dev_dbg(dev, "%s: Releasing %s.\n", __func__, md->name); > > > - memset(md, 0, sizeof(struct w1_master) + sizeof(struct w1_bus_master)); > > > - kfree(md); > > > + kfree_sensitive(md); > > Does this actually change anything? Why is the memset being called here > > at all? > It's no functional change and I got this by > scripts/coccinelle/api/kfree_sensitive.cocci. > I'm not sure why using memset() here. I think the memset() can just be dropped. Can you make that change and test it to verify it still works properly with that change? thanks, greg k-h
On 2022/5/17 18:18, Greg KH wrote: > On Wed, May 11, 2022 at 03:25:52PM +0800, Yang Yingliang wrote: >> Hi, >> >> On 2022/5/11 14:45, Greg KH wrote: >>> On Wed, May 11, 2022 at 02:49:54PM +0800, Yang Yingliang wrote: >>>> Use kfree_sensitive() instead of open-coding it. >>>> >>>> Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> >>>> --- >>>> drivers/w1/w1.c | 3 +-- >>>> 1 file changed, 1 insertion(+), 2 deletions(-) >>>> >>>> diff --git a/drivers/w1/w1.c b/drivers/w1/w1.c >>>> index f2ae2e563dc5..a0a6c3c739d9 100644 >>>> --- a/drivers/w1/w1.c >>>> +++ b/drivers/w1/w1.c >>>> @@ -73,8 +73,7 @@ static void w1_master_release(struct device *dev) >>>> struct w1_master *md = dev_to_w1_master(dev); >>>> dev_dbg(dev, "%s: Releasing %s.\n", __func__, md->name); >>>> - memset(md, 0, sizeof(struct w1_master) + sizeof(struct w1_bus_master)); >>>> - kfree(md); >>>> + kfree_sensitive(md); >>> Does this actually change anything? Why is the memset being called here >>> at all? >> It's no functional change and I got this by >> scripts/coccinelle/api/kfree_sensitive.cocci. >> I'm not sure why using memset() here. > I think the memset() can just be dropped. Can you make that change and > test it to verify it still works properly with that change? I can make change and send a patch for this, but I don't have device to test it. > > thanks, > > greg k-h > .
On Tue, May 17, 2022 at 09:03:43PM +0800, Yang Yingliang wrote: > > On 2022/5/17 18:18, Greg KH wrote: > > On Wed, May 11, 2022 at 03:25:52PM +0800, Yang Yingliang wrote: > > > Hi, > > > > > > On 2022/5/11 14:45, Greg KH wrote: > > > > On Wed, May 11, 2022 at 02:49:54PM +0800, Yang Yingliang wrote: > > > > > Use kfree_sensitive() instead of open-coding it. > > > > > > > > > > Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> > > > > > --- > > > > > drivers/w1/w1.c | 3 +-- > > > > > 1 file changed, 1 insertion(+), 2 deletions(-) > > > > > > > > > > diff --git a/drivers/w1/w1.c b/drivers/w1/w1.c > > > > > index f2ae2e563dc5..a0a6c3c739d9 100644 > > > > > --- a/drivers/w1/w1.c > > > > > +++ b/drivers/w1/w1.c > > > > > @@ -73,8 +73,7 @@ static void w1_master_release(struct device *dev) > > > > > struct w1_master *md = dev_to_w1_master(dev); > > > > > dev_dbg(dev, "%s: Releasing %s.\n", __func__, md->name); > > > > > - memset(md, 0, sizeof(struct w1_master) + sizeof(struct w1_bus_master)); > > > > > - kfree(md); > > > > > + kfree_sensitive(md); > > > > Does this actually change anything? Why is the memset being called here > > > > at all? > > > It's no functional change and I got this by > > > scripts/coccinelle/api/kfree_sensitive.cocci. > > > I'm not sure why using memset() here. > > I think the memset() can just be dropped. Can you make that change and > > test it to verify it still works properly with that change? > I can make change and send a patch for this, but I don't have device to test > it. For something like this, it would be great to test. thanks, greg k-h
diff --git a/drivers/w1/w1.c b/drivers/w1/w1.c index f2ae2e563dc5..a0a6c3c739d9 100644 --- a/drivers/w1/w1.c +++ b/drivers/w1/w1.c @@ -73,8 +73,7 @@ static void w1_master_release(struct device *dev) struct w1_master *md = dev_to_w1_master(dev); dev_dbg(dev, "%s: Releasing %s.\n", __func__, md->name); - memset(md, 0, sizeof(struct w1_master) + sizeof(struct w1_bus_master)); - kfree(md); + kfree_sensitive(md); } static void w1_slave_release(struct device *dev)
Use kfree_sensitive() instead of open-coding it. Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> --- drivers/w1/w1.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)