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

Reply via email to