If invalid data is copied from user space and if GET_SEGNO() returns NULL_SEGNO an overflow is possible.
Add checks for invalid values. Found by Linux Verification Center (linuxtesting.org) with Svace. Signed-off-by: Roman Smirnov <r.smir...@omp.ru> --- fs/f2fs/file.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c index 168f08507004..1b9c4fee9db1 100644 --- a/fs/f2fs/file.c +++ b/fs/f2fs/file.c @@ -3093,6 +3093,9 @@ static int f2fs_ioc_flush_device(struct file *filp, unsigned long arg) start_segno = dev_start_segno; end_segno = min(start_segno + range.segments, dev_end_segno); + if (start_segno > F2FS_MAX_SEGMENT - range.segments || end_segno == NULL_SEGNO) + return -EINVAL; + while (start_segno < end_segno) { if (!f2fs_down_write_trylock(&sbi->gc_lock)) { ret = -EBUSY; -- 2.43.0 _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel