vfs: add missing checks to copy_file_range
authorAmir Goldstein <amir73il@gmail.com>
Wed, 5 Jun 2019 15:04:49 +0000 (08:04 -0700)
committerDarrick J. Wong <darrick.wong@oracle.com>
Sun, 9 Jun 2019 17:06:19 +0000 (10:06 -0700)
commit96e6e8f4a68df2d94800311163faa67124df24e5
tree42b63675c58ce53f9896daf674937625e71a684d
parent646955cd5425dd8fed8205cbb1b4373c222d028e
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>
fs/read_write.c
include/linux/fs.h
mm/filemap.c