diff options
author | Dan Carpenter <dan.carpenter@oracle.com> | 2016-02-25 10:52:12 +0300 |
---|---|---|
committer | Alex Williamson <alex.williamson@redhat.com> | 2016-02-25 21:48:42 -0700 |
commit | c4aec3101319f84363a57e09086c2aff6c60a3c3 (patch) | |
tree | 553031dcd815fc2059ecb467d611c23df4d565ef /drivers/vfio | |
parent | a13b64591747e8a4ab2df24540a17fca34de2d34 (diff) | |
download | linux-c4aec3101319f84363a57e09086c2aff6c60a3c3.tar.gz linux-c4aec3101319f84363a57e09086c2aff6c60a3c3.tar.xz |
vfio/pci: return -EFAULT if copy_to_user fails
The copy_to_user() function returns the number of bytes that were not
copied but we want to return -EFAULT on error here.
Fixes: 188ad9d6cbbc ('vfio/pci: Include sparse mmap capability for MSI-X table regions')
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Diffstat (limited to 'drivers/vfio')
-rw-r--r-- | drivers/vfio/pci/vfio_pci.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/vfio/pci/vfio_pci.c b/drivers/vfio/pci/vfio_pci.c index 1ce1d364308c..98059df9cff6 100644 --- a/drivers/vfio/pci/vfio_pci.c +++ b/drivers/vfio/pci/vfio_pci.c @@ -664,12 +664,11 @@ static long vfio_pci_ioctl(void *device_data, info.cap_offset = 0; } else { vfio_info_cap_shift(&caps, sizeof(info)); - ret = copy_to_user((void __user *)arg + - sizeof(info), caps.buf, - caps.size); - if (ret) { + if (copy_to_user((void __user *)arg + + sizeof(info), caps.buf, + caps.size)) { kfree(caps.buf); - return ret; + return -EFAULT; } info.cap_offset = sizeof(info); } |