Skip to content

Commit

Permalink
Btrfs: do not overwrite error return value in scrub progress ioctl
Browse files Browse the repository at this point in the history
If the call to btrfs_scrub_progress() failed we would overwrite the error
returned to user space with -EFAULT if the call to copy_to_user() failed
as well. Fix that by calling copy_to_user() only if btrfs_scrub_progress()
returned success.

Reviewed-by: Nikolay Borisov <nborisov@suse.com>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Reviewed-by: Anand Jain <anand.jain@oracle.com>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
  • Loading branch information
Filipe Manana authored and David Sterba committed Feb 25, 2019
1 parent 06fe39a commit 4fa99b0
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion fs/btrfs/ioctl.c
Original file line number Diff line number Diff line change
Expand Up @@ -4414,7 +4414,7 @@ static long btrfs_ioctl_scrub_progress(struct btrfs_fs_info *fs_info,

ret = btrfs_scrub_progress(fs_info, sa->devid, &sa->progress);

if (copy_to_user(arg, sa, sizeof(*sa)))
if (ret == 0 && copy_to_user(arg, sa, sizeof(*sa)))
ret = -EFAULT;

kfree(sa);
Expand Down

0 comments on commit 4fa99b0

Please sign in to comment.