2020-06-16 15:35:30

by Waiman Long

[permalink] [raw]
Subject: [PATCH] btrfs: Use kfree() in btrfs_ioctl_get_subvol_info()

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 kzfree() isn't really needed, use kfree()
instead.

Reported-by: David Sterba <[email protected]>
Signed-off-by: Waiman Long <[email protected]>
---
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 168deb8ef68a..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);
- kzfree(subvol_info);
+ kfree(subvol_info);
return ret;
}

--
2.18.1


2020-06-16 17:14:18

by David Sterba

[permalink] [raw]
Subject: Re: [PATCH] btrfs: Use kfree() in btrfs_ioctl_get_subvol_info()

On Tue, Jun 16, 2020 at 11:31:59AM -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 kzfree() isn't really needed, use kfree()
> instead.
>
> Reported-by: David Sterba <[email protected]>
> Signed-off-by: Waiman Long <[email protected]>

Added to the devel patch queue, thanks.