diff options
Diffstat (limited to 'fs/f2fs')
-rw-r--r-- | fs/f2fs/dir.c | 3 | ||||
-rw-r--r-- | fs/f2fs/recovery.c | 6 |
2 files changed, 6 insertions, 3 deletions
diff --git a/fs/f2fs/dir.c b/fs/f2fs/dir.c index 07ad850bbf97..f0b463049444 100644 --- a/fs/f2fs/dir.c +++ b/fs/f2fs/dir.c | |||
@@ -190,9 +190,6 @@ struct f2fs_dir_entry *f2fs_find_entry(struct inode *dir, | |||
190 | unsigned int max_depth; | 190 | unsigned int max_depth; |
191 | unsigned int level; | 191 | unsigned int level; |
192 | 192 | ||
193 | if (unlikely(namelen > F2FS_NAME_LEN)) | ||
194 | return NULL; | ||
195 | |||
196 | if (npages == 0) | 193 | if (npages == 0) |
197 | return NULL; | 194 | return NULL; |
198 | 195 | ||
diff --git a/fs/f2fs/recovery.c b/fs/f2fs/recovery.c index a3f4542160cf..4d411a26b85d 100644 --- a/fs/f2fs/recovery.c +++ b/fs/f2fs/recovery.c | |||
@@ -62,6 +62,12 @@ static int recover_dentry(struct page *ipage, struct inode *inode) | |||
62 | 62 | ||
63 | name.len = le32_to_cpu(raw_inode->i_namelen); | 63 | name.len = le32_to_cpu(raw_inode->i_namelen); |
64 | name.name = raw_inode->i_name; | 64 | name.name = raw_inode->i_name; |
65 | |||
66 | if (unlikely(name.len > F2FS_NAME_LEN)) { | ||
67 | WARN_ON(1); | ||
68 | err = -ENAMETOOLONG; | ||
69 | goto out; | ||
70 | } | ||
65 | retry: | 71 | retry: |
66 | de = f2fs_find_entry(dir, &name, &page); | 72 | de = f2fs_find_entry(dir, &name, &page); |
67 | if (de && inode->i_ino == le32_to_cpu(de->ino)) | 73 | if (de && inode->i_ino == le32_to_cpu(de->ino)) |