Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dba79f38 authored by Chao Yu's avatar Chao Yu Committed by Jaegeuk Kim
Browse files

f2fs: fix to avoid overflow when left shifting page offset



We use following method to calculate size with current page index:
size = index << PAGE_SHIFT
If type of index has only 32-bits size, left shifting will incur overflow,
which makes result incorrect.

So let's cast index with 64-bits type to avoid such issue.

Signed-off-by: default avatarChao Yu <yuchao0@huawei.com>
Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
parent ba38c27e
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -428,8 +428,9 @@ static int do_recover_data(struct f2fs_sb_info *sbi, struct inode *inode,
		}

		if (!file_keep_isize(inode) &&
				(i_size_read(inode) <= (start << PAGE_SHIFT)))
			f2fs_i_size_write(inode, (start + 1) << PAGE_SHIFT);
			(i_size_read(inode) <= ((loff_t)start << PAGE_SHIFT)))
			f2fs_i_size_write(inode,
				(loff_t)(start + 1) << PAGE_SHIFT);

		/*
		 * dest is reserved block, invalidate src block