diff options
author | Sheng Yong <shengyong1@huawei.com> | 2016-01-30 09:16:38 +0000 |
---|---|---|
committer | luca020400 <luca.stefani.ge1@gmail.com> | 2016-04-04 17:16:18 +0200 |
commit | 1f1a81f6b62380cd2635c44c777016fbd8fa84b3 (patch) | |
tree | b910fe7f57f15e6dbbfa239a0f52245b216d71bf | |
parent | f94c606b5320cf9fa38336987d027dd383369f89 (diff) | |
download | android_external_f2fs-tools-1f1a81f6b62380cd2635c44c777016fbd8fa84b3.tar.gz android_external_f2fs-tools-1f1a81f6b62380cd2635c44c777016fbd8fa84b3.tar.bz2 android_external_f2fs-tools-1f1a81f6b62380cd2635c44c777016fbd8fa84b3.zip |
fsck.f2fs: check ino of an used nat entry
If a nid is valid, the ino in its nat entry should record its parent nid.
However if the ino is zero, we should drop the node.
Signed-off-by: Sheng Yong <shengyong1@huawei.com>
Signed-off-by: Xue Liu <liuxueliu.liu@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
-rw-r--r-- | fsck/fsck.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/fsck/fsck.c b/fsck/fsck.c index 7facf07..3e5dd4e 100644 --- a/fsck/fsck.c +++ b/fsck/fsck.c @@ -358,6 +358,11 @@ static int sanity_check_nid(struct f2fs_sb_info *sbi, u32 nid, } get_node_info(sbi, nid, ni); + if (ni->ino == 0) { + ASSERT_MSG("nid[0x%x] ino is 0", nid); + return -EINVAL; + } + if (ni->blk_addr == NEW_ADDR) { ASSERT_MSG("nid is NEW_ADDR. [0x%x]", nid); return -EINVAL; |