Patch "f2fs: sanity check checkpoint segno and blkoff" has been added to the 4.9-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
f2fs: sanity check checkpoint segno and blkoff
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
f2fs-sanity-check-checkpoint-segno-and-blkoff.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
15d3042a937c13f5d9244241c7a9c8416ff6e82aMon Sep 17 00:00:00 2001
From: Jin Qian <[email protected]>
Date: Mon, 15 May 2017 10:45:08 -0700
Subject: f2fs: sanity check checkpoint segno and blkoff
From: Jin Qian <[email protected]>
commit 15d3042a937c13f5d9244241c7a9c8416ff6e82a upstream.
Make sure segno and blkoff read from raw image are valid.
--- fs/f2fs/super.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)
fs/f2fs/super.c +16 -0
@@ -1424,6 +1424,8 @@ int sanity_check_ckpt(struct f2fs_sb_infunsigned int total, fsmeta;struct f2fs_super_block *raw_super =F2FS_RAW_SUPER (sbi);struct f2fs_checkpoint *ckpt =F2FS_CKPT (sbi); +unsigned int main_segs, blocks_per_seg; +int i; total =le32_to_cpu (raw_super->segment_count); fsmeta =le32_to_cpu (raw_super->segment_count_ckpt);
@@ -1435,6 +1437,20 @@ int sanity_check_ckpt(struct f2fs_sb_infif (unlikely (fsmeta >= total))return 1 ; + main_segs =le32_to_cpu (raw_super->segment_count_main); + blocks_per_seg = sbi->blocks_per_seg; + +for (i =0 ; i <NR_CURSEG_NODE_TYPE ; i++) { +if (le32_to_cpu (ckpt->cur_node_segno[i]) >= main_segs || +le16_to_cpu (ckpt->cur_node_blkoff[i]) >= blocks_per_seg) +return 1 ; + } +for (i =0 ; i <NR_CURSEG_DATA_TYPE ; i++) { +if (le32_to_cpu (ckpt->cur_data_segno[i]) >= main_segs || +le16_to_cpu (ckpt->cur_data_blkoff[i]) >= blocks_per_seg) +return 1 ; + } +if (unlikely (f2fs_cp_error (sbi))) {f2fs_msg (sbi->sb,KERN_ERR ,"A bug case: need to run fsck" );return 1 ;
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/f2fs-sanity-check-checkpoint-segno-and-blkoff.patch