f2fs: fix to do sanity check in is_alive()
In fuzzed image, SSA table may indicate that a data block belongs to invalid node, which node ID is out-of-range (0, 1, 2 or max_nid), in order to avoid migrating inconsistent data in such corrupted image, let's do sanity check anyway before data block migration. Cc: stable@vger.kernel.org Signed-off-by: Chao Yu <chao@kernel.org> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
parent
f6db43076d
commit
77900c45ee
|
@ -1026,6 +1026,9 @@ static bool is_alive(struct f2fs_sb_info *sbi, struct f2fs_summary *sum,
|
||||||
set_sbi_flag(sbi, SBI_NEED_FSCK);
|
set_sbi_flag(sbi, SBI_NEED_FSCK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (f2fs_check_nid_range(sbi, dni->ino))
|
||||||
|
return false;
|
||||||
|
|
||||||
*nofs = ofs_of_node(node_page);
|
*nofs = ofs_of_node(node_page);
|
||||||
source_blkaddr = data_blkaddr(NULL, node_page, ofs_in_node);
|
source_blkaddr = data_blkaddr(NULL, node_page, ofs_in_node);
|
||||||
f2fs_put_page(node_page, 1);
|
f2fs_put_page(node_page, 1);
|
||||||
|
|
Loading…
Reference in New Issue