Messages in this thread Patch in this message | | | Date | Sat, 4 May 2024 14:27:36 +0300 | From | Dan Carpenter <> | Subject | [PATCH] xfs: check for negatives in xfs_exchange_range_checks() |
| |
The fxr->file1_offset and fxr->file2_offset variables come from the user in xfs_ioc_exchange_range(). They are size loff_t which is an s64. Check the they aren't negative.
Fixes: 9a64d9b3109d ("xfs: introduce new file range exchange ioctl") Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org> --- From static analysis. Untested. Sorry!
fs/xfs/xfs_exchrange.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/fs/xfs/xfs_exchrange.c b/fs/xfs/xfs_exchrange.c index c8a655c92c92..3465e152d928 100644 --- a/fs/xfs/xfs_exchrange.c +++ b/fs/xfs/xfs_exchrange.c @@ -337,6 +337,9 @@ xfs_exchange_range_checks( if (IS_SWAPFILE(inode1) || IS_SWAPFILE(inode2)) return -ETXTBSY; + if (fxr->file1_offset < 0 || fxr->file2_offset < 0) + return -EINVAL; + size1 = i_size_read(inode1); size2 = i_size_read(inode2); -- 2.43.0
| |