Skip to content

Commit

Permalink
Btrfs: do not overwrite error return value in the get device stats ioctl
Browse files Browse the repository at this point in the history
If the call to btrfs_get_dev_stats() 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_get_dev_stats()
returned success.

Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
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 4fa99b0 commit eee9957
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 @@ -4438,7 +4438,7 @@ static long btrfs_ioctl_get_dev_stats(struct btrfs_fs_info *fs_info,

ret = btrfs_get_dev_stats(fs_info, sa);

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 eee9957

Please sign in to comment.