mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 04:33:26 +02:00
vfs: add missing checks to copy_file_range
Like the clone and dedupe interfaces we've recently fixed, the copy_file_range() implementation is missing basic sanity, limits and boundary condition tests on the parameters that are passed to it from userspace. Create a new "generic_copy_file_checks()" function modelled on the generic_remap_checks() function to provide this missing functionality. [Amir] Shorten copy length instead of checking pos_in limits because input file size already abides by the limits. Signed-off-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Amir Goldstein <amir73il@gmail.com> Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com> Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
This commit is contained in:
committed by
Darrick J. Wong
parent
646955cd54
commit
96e6e8f4a6
@@ -1626,7 +1626,8 @@ ssize_t vfs_copy_file_range(struct file *file_in, loff_t pos_in,
|
||||
if (file_inode(file_in)->i_sb != file_inode(file_out)->i_sb)
|
||||
return -EXDEV;
|
||||
|
||||
ret = generic_file_rw_checks(file_in, file_out);
|
||||
ret = generic_copy_file_checks(file_in, pos_in, file_out, pos_out, &len,
|
||||
flags);
|
||||
if (unlikely(ret))
|
||||
return ret;
|
||||
|
||||
|
Reference in New Issue
Block a user