aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSheng Yong <shengyong1@huawei.com>2016-01-30 09:16:38 +0000
committerluca020400 <luca.stefani.ge1@gmail.com>2016-04-04 17:16:18 +0200
commit1f1a81f6b62380cd2635c44c777016fbd8fa84b3 (patch)
treeb910fe7f57f15e6dbbfa239a0f52245b216d71bf
parentf94c606b5320cf9fa38336987d027dd383369f89 (diff)
downloadandroid_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.c5
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;