fsck.f2fs: check ino in nat entry and node footer
Signed-off-by: Sheng Yong <shengyong1@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
diff --git a/fsck/mount.c b/fsck/mount.c
index 1d99375..51d50ec 100644
--- a/fsck/mount.c
+++ b/fsck/mount.c
@@ -1683,6 +1683,10 @@
if (lookup_nat_in_journal(sbi, nid + i,
&raw_nat) >= 0) {
node_info_from_raw_nat(&ni, &raw_nat);
+ if ((ni.ino == 0x0 && ni.blk_addr != 0x0))
+ ASSERT_MSG("\tError: ino[0x%8x] or blk_addr[0x%16x]"
+ " is invalid\n",
+ ni.ino, ni.blk_addr);
if (ni.ino == (nid + i) && ni.blk_addr != 0) {
fsck->nat_valid_inode_cnt++;
DBG(3, "ino[0x%8x] maybe is inode\n",
@@ -1700,6 +1704,10 @@
} else {
node_info_from_raw_nat(&ni,
&nat_block->entries[i]);
+ if ((ni.ino == 0x0 && ni.blk_addr != 0x0))
+ ASSERT_MSG("\tError: ino[0x%8x] or blk_addr[0x%16x]"
+ " is invalid\n",
+ ni.ino, ni.blk_addr);
if (ni.ino == (nid + i) && ni.blk_addr != 0) {
fsck->nat_valid_inode_cnt++;
DBG(3, "ino[0x%8x] maybe is inode\n",