This patch checks the parameter range passed by ioctl to void that range
exceeds the max_file_blocks limit.

Signed-off-by: Sheng Yong <[email protected]>
---
 fs/f2fs/file.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
index e0b2378..eb675f1 100644
--- a/fs/f2fs/file.c
+++ b/fs/f2fs/file.c
@@ -2045,6 +2045,12 @@ static int f2fs_ioc_defragment(struct file *filp, 
unsigned long arg)
                goto out;
        }
 
+       if (unlikely((range.start + range.len) >> PAGE_SHIFT >
+                                       sbi->max_file_blocks)) {
+               err = -EINVAL;
+               goto out;
+       }
+
        err = f2fs_defragment_range(sbi, filp, &range);
        f2fs_update_time(sbi, REQ_TIME);
        if (err < 0)
-- 
2.10.1


------------------------------------------------------------------------------
Announcing the Oxford Dictionaries API! The API offers world-renowned
dictionary content that is easy and intuitive to access. Sign up for an
account today to start using our lexical data to power your apps and
projects. Get started today and enter our developer competition.
http://sdm.link/oxford
_______________________________________________
Linux-f2fs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to