xen/privcmd: return -EFAULT on error
Subsystems (3)
PATCH 2/3 xen/privcmd: return -EFAULT on error
__copy_to_user() returns the number of bytes remaining to be copied but we want to return a negative error code here.
Signed-off-by Dan Carpenter <[email protected]>
drivers/xen/privcmd.c +4 -1
@@ -393,8 +393,11 @@ static long privcmd_ioctl_mmap_batch(void __user *udata, int version) state.err = err_array; ret =traverse_pages (m.num,sizeof (xen_pfn_t), &pagelist, mmap_return_errors_v1, &state); - }else if (version =2 ) + }else if (version =2 ) { ret =__copy_to_user (m.err, err_array, m.num *sizeof (int )); +if (ret) + ret = -EFAULT ; + }/* If we have not had any EFAULT-like global errors then set the global * error to -ENOENT if necessary. */
Quoted 4 lines · Dan Carpenter
__copy_to_user()returns the number of bytes remaining to be copied but we want to return a negative error code here.Signed-off-by Dan Carpenter <[email protected]>
Quoted 18 lines
drivers/xen/privcmd.c +4
-1@@ -393,8 +393,11 @@ static long privcmd_ioctl_mmap_batch(void __user *udata, int version) state.err = err_array; ret =traverse_pages (m.num,sizeof (xen_pfn_t), &pagelist, mmap_return_errors_v1, &state); - }else if (version =2 ) + }else if (version =2 ) { ret =__copy_to_user (m.err, err_array, m.num *sizeof (int )); +if (ret) + ret = -EFAULT ; + }/* If we have not had any EFAULT-like global errors then set the global * error to -ENOENT if necessary. */
Quoted 4 lines · Dan Carpenter
__copy_to_user()returns the number of bytes remaining to be copied but we want to return a negative error code here.Signed-off-by Dan Carpenter <[email protected]>
Quoted 18 lines
drivers/xen/privcmd.c +4
-1@@ -393,8 +393,11 @@ static long privcmd_ioctl_mmap_batch(void __user *udata, int version) state.err = err_array; ret =traverse_pages (m.num,sizeof (xen_pfn_t), &pagelist, mmap_return_errors_v1, &state); - }else if (version ==2 ) + }else if (version ==2 ) { ret =__copy_to_user (m.err, err_array, m.num *sizeof (int )); +if (ret) + ret = -EFAULT ; + }/* If we have not had any EFAULT-like global errors then set the global * error to -ENOENT if necessary. */