Messages in this thread Patch in this message | | | Date | Thu, 2 Mar 2023 01:57:48 +0530 | From | Deepak R Varma <> | Subject | [PATCH RESEND] w1: Use kfree_sensitive to clear sensitive information |
| |
Replace combination of 'memset(0) + kfree()' by kfree_sensitive() as it prevents compiler from optimizing away from zeroing out memory at the end of a scope. kfree_sensitive() is also safe in case the memory pointer turns out to be null, which simply gets ignored.
Issue identified using kfree_sensitive.cocci coccinelle semantic patch.
Signed-off-by: Deepak R Varma <drv@mailo.com> --- Note: - proposed change is compile tested only. - Resending the patch for review and feedback. Initially sent on Dec 23 2022.
drivers/w1/w1.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/w1/w1.c b/drivers/w1/w1.c index 9d199fed9628..0241fc6ca65a 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) @@ -805,9 +804,10 @@ int w1_unref_slave(struct w1_slave *sl) w1_family_notify(BUS_NOTIFY_DEL_DEVICE, sl); device_unregister(&sl->dev); #ifdef DEBUG - memset(sl, 0, sizeof(*sl)); - #endif + kfree_sensitive(sl); + #else kfree(sl); + #endif } atomic_dec(&dev->refcnt); mutex_unlock(&dev->list_mutex); -- 2.34.1
| |