Dentry bitmap is not enough to detect incorrect dentries. So this patch
also checks the namelen value of a dentry.

Signed-off-by: Gong Chen <gongch...@huawei.com>
Signed-off-by: Sheng Yong <shengyo...@huawei.com>
---
 fs/f2fs/dir.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/fs/f2fs/dir.c b/fs/f2fs/dir.c
index c0c845da12fa..07cfd826f090 100644
--- a/fs/f2fs/dir.c
+++ b/fs/f2fs/dir.c
@@ -810,7 +810,8 @@ int f2fs_fill_dentries(struct dir_context *ctx, struct 
f2fs_dentry_ptr *d,
 
                /* check memory boundary before moving forward */
                bit_pos += GET_DENTRY_SLOTS(le16_to_cpu(de->name_len));
-               if (unlikely(bit_pos > d->max)) {
+               if (unlikely(bit_pos > d->max) ||
+                               le16_to_cpu(de->name_len > F2FS_NAME_LEN)) {
                        f2fs_msg(sbi->sb, KERN_WARNING,
                                "%s: corrupted namelen=%d, run fsck to fix.",
                                __func__, le16_to_cpu(de->name_len));
-- 
2.17.1



_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to