2016-11-10 09:50:03

by Shailendra Verma

[permalink] [raw]
Subject: [PATCH] Fs: Btrfs - Improvement in code readability when

From: "Shailendra Verma" <[email protected]>

There is no need to call kfree() if memdup_user() fails, as no memory
was allocated and the error in the error-valued pointer should be returned.

Signed-off-by: Shailendra Verma <[email protected]>
---
fs/btrfs/ioctl.c | 21 ++++++---------------
1 file changed, 6 insertions(+), 15 deletions(-)

diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
index 18e1aa0f..fddbc04 100644
--- a/fs/btrfs/ioctl.c
+++ b/fs/btrfs/ioctl.c
@@ -4567,11 +4567,8 @@ static long btrfs_ioctl_logical_to_ino(struct btrfs_root *root,
return -EPERM;

loi = memdup_user(arg, sizeof(*loi));
- if (IS_ERR(loi)) {
- ret = PTR_ERR(loi);
- loi = NULL;
- goto out;
- }
+ if (IS_ERR(loi))
+ return PTR_ERR(loi);

path = btrfs_alloc_path();
if (!path) {
@@ -5198,11 +5195,8 @@ static long btrfs_ioctl_set_received_subvol_32(struct file *file,
int ret = 0;

args32 = memdup_user(arg, sizeof(*args32));
- if (IS_ERR(args32)) {
- ret = PTR_ERR(args32);
- args32 = NULL;
- goto out;
- }
+ if (IS_ERR(args32))
+ return PTR_ERR(args32);

args64 = kmalloc(sizeof(*args64), GFP_KERNEL);
if (!args64) {
@@ -5250,11 +5244,8 @@ static long btrfs_ioctl_set_received_subvol(struct file *file,
int ret = 0;

sa = memdup_user(arg, sizeof(*sa));
- if (IS_ERR(sa)) {
- ret = PTR_ERR(sa);
- sa = NULL;
- goto out;
- }
+ if (IS_ERR(sa))
+ return PTR_ERR(sa);

ret = _btrfs_ioctl_set_received_subvol(file, sa);

--
1.7.9.5


2016-11-16 16:18:10

by David Sterba

[permalink] [raw]
Subject: Re: [PATCH] Fs: Btrfs - Improvement in code readability when

On Thu, Nov 10, 2016 at 03:17:41PM +0530, Shailendra Verma wrote:
> From: "Shailendra Verma" <[email protected]>
>
> There is no need to call kfree() if memdup_user() fails, as no memory
> was allocated and the error in the error-valued pointer should be returned.
>
> Signed-off-by: Shailendra Verma <[email protected]>

Queued for 4.10, I've edited the subject line as it's very descriptive.
("btrfs: return early from failed memory allocations in ioctl handlers")