Message ID | 20200616015718.7812-4-longman@redhat.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
Series | mm, treewide: Rename kzfree() to kfree_sensitive() | expand |
On Mon, Jun 15, 2020 at 09:57:18PM -0400, Waiman Long wrote: > In btrfs_ioctl_get_subvol_info(), there is a classic case where kzalloc() > was incorrectly paired with kzfree(). According to David Sterba, there > isn't any sensitive information in the subvol_info that needs to be > cleared before freeing. So kfree_sensitive() isn't really needed, > use kfree() instead. > > Reported-by: David Sterba <dsterba@suse.cz> > Signed-off-by: Waiman Long <longman@redhat.com> > --- > fs/btrfs/ioctl.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c > index f1dd9e4271e9..e8f7c5f00894 100644 > --- a/fs/btrfs/ioctl.c > +++ b/fs/btrfs/ioctl.c > @@ -2692,7 +2692,7 @@ static int btrfs_ioctl_get_subvol_info(struct file *file, void __user *argp) > btrfs_put_root(root); > out_free: > btrfs_free_path(path); > - kfree_sensitive(subvol_info); > + kfree(subvol_info); I would rather merge a patch doing to kzfree -> kfree instead of doing the middle step to switch it to kfree_sensitive. If it would help integration of your patchset I can push it to the next rc so there are no kzfree left in the btrfs code. Treewide change like that can take time so it would be one less problem to care about for you.
On 6/16/20 10:48 AM, David Sterba wrote: > On Mon, Jun 15, 2020 at 09:57:18PM -0400, Waiman Long wrote: >> In btrfs_ioctl_get_subvol_info(), there is a classic case where kzalloc() >> was incorrectly paired with kzfree(). According to David Sterba, there >> isn't any sensitive information in the subvol_info that needs to be >> cleared before freeing. So kfree_sensitive() isn't really needed, >> use kfree() instead. >> >> Reported-by: David Sterba <dsterba@suse.cz> >> Signed-off-by: Waiman Long <longman@redhat.com> >> --- >> fs/btrfs/ioctl.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c >> index f1dd9e4271e9..e8f7c5f00894 100644 >> --- a/fs/btrfs/ioctl.c >> +++ b/fs/btrfs/ioctl.c >> @@ -2692,7 +2692,7 @@ static int btrfs_ioctl_get_subvol_info(struct file *file, void __user *argp) >> btrfs_put_root(root); >> out_free: >> btrfs_free_path(path); >> - kfree_sensitive(subvol_info); >> + kfree(subvol_info); > I would rather merge a patch doing to kzfree -> kfree instead of doing > the middle step to switch it to kfree_sensitive. If it would help > integration of your patchset I can push it to the next rc so there are > no kzfree left in the btrfs code. Treewide change like that can take > time so it would be one less problem to care about for you. > Sure, I will move it forward in the patch series. Thanks, Longman
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c index f1dd9e4271e9..e8f7c5f00894 100644 --- a/fs/btrfs/ioctl.c +++ b/fs/btrfs/ioctl.c @@ -2692,7 +2692,7 @@ static int btrfs_ioctl_get_subvol_info(struct file *file, void __user *argp) btrfs_put_root(root); out_free: btrfs_free_path(path); - kfree_sensitive(subvol_info); + kfree(subvol_info); return ret; }
In btrfs_ioctl_get_subvol_info(), there is a classic case where kzalloc() was incorrectly paired with kzfree(). According to David Sterba, there isn't any sensitive information in the subvol_info that needs to be cleared before freeing. So kfree_sensitive() isn't really needed, use kfree() instead. Reported-by: David Sterba <dsterba@suse.cz> Signed-off-by: Waiman Long <longman@redhat.com> --- fs/btrfs/ioctl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)