diff options
author | Shailendra Verma <shailendra.v@samsung.com> | 2016-11-10 15:17:41 +0530 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2016-11-30 13:45:18 +0100 |
commit | 7b9ea6279b337455268fa41c1ddec22f1cb44e8f (patch) | |
tree | 031881988f2df5ae168ae4de777fe51688da2d7f /fs | |
parent | 58e8012cc12b3cdebea118981c4fd7136d52f2c7 (diff) | |
download | linux-stable-7b9ea6279b337455268fa41c1ddec22f1cb44e8f.tar.gz linux-stable-7b9ea6279b337455268fa41c1ddec22f1cb44e8f.tar.bz2 linux-stable-7b9ea6279b337455268fa41c1ddec22f1cb44e8f.zip |
btrfs: return early from failed memory allocations in ioctl handlers
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 <shailendra.v@samsung.com>
[ edit subject ]
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/btrfs/ioctl.c | 21 |
1 files changed, 6 insertions, 15 deletions
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c index a26202ebed33..4a20f3e68cb4 100644 --- a/fs/btrfs/ioctl.c +++ b/fs/btrfs/ioctl.c @@ -4569,11 +4569,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) { @@ -5200,11 +5197,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) { @@ -5252,11 +5246,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); |