mirror of https://gitee.com/openkylin/linux.git
staging: lustre: return -EFAULT instead of bytes remaining
return -EFAULT instead of the value returned by copy_from_user() Signed-off-by: Vitaly Osipov <vitaly.osipov@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
751a624adb
commit
a9c08b0ac1
|
@ -45,14 +45,12 @@ int libcfs_ioctl_getdata(char *buf, char *end, void *arg)
|
|||
struct libcfs_ioctl_hdr *hdr;
|
||||
struct libcfs_ioctl_data *data;
|
||||
int orig_len;
|
||||
int err;
|
||||
|
||||
hdr = (struct libcfs_ioctl_hdr *)buf;
|
||||
data = (struct libcfs_ioctl_data *)buf;
|
||||
|
||||
err = copy_from_user(buf, (void *)arg, sizeof(*hdr));
|
||||
if (err)
|
||||
return err;
|
||||
if (copy_from_user(buf, (void *)arg, sizeof(*hdr)))
|
||||
return -EFAULT;
|
||||
|
||||
if (hdr->ioc_version != LIBCFS_IOCTL_VERSION) {
|
||||
CERROR("PORTALS: version mismatch kernel vs application\n");
|
||||
|
@ -71,9 +69,8 @@ int libcfs_ioctl_getdata(char *buf, char *end, void *arg)
|
|||
}
|
||||
|
||||
orig_len = hdr->ioc_len;
|
||||
err = copy_from_user(buf, (void *)arg, hdr->ioc_len);
|
||||
if (err)
|
||||
return err;
|
||||
if (copy_from_user(buf, (void *)arg, hdr->ioc_len))
|
||||
return -EFAULT;
|
||||
if (orig_len != data->ioc_len)
|
||||
return -EINVAL;
|
||||
|
||||
|
|
Loading…
Reference in New Issue