mirror of https://gitee.com/openkylin/linux.git
ext4: fix overflow when updating superblock backups after resize
When there are no meta block groups update_backups() will compute the backup block in 32-bit arithmetics thus possibly overflowing the block number and corrupting the filesystem. OTOH filesystems without meta block groups larger than 16 TB should be rare. Fix the problem by doing the counting in 64-bit arithmetics. Coverity-id: 741252 CC: stable@vger.kernel.org Signed-off-by: Jan Kara <jack@suse.cz> Signed-off-by: Theodore Ts'o <tytso@mit.edu> Reviewed-by: Lukas Czerner <lczerner@redhat.com>
This commit is contained in:
parent
cac7f24298
commit
9378c6768e
|
@ -1081,7 +1081,7 @@ static void update_backups(struct super_block *sb, int blk_off, char *data,
|
|||
break;
|
||||
|
||||
if (meta_bg == 0)
|
||||
backup_block = group * bpg + blk_off;
|
||||
backup_block = ((ext4_fsblk_t)group) * bpg + blk_off;
|
||||
else
|
||||
backup_block = (ext4_group_first_block_no(sb, group) +
|
||||
ext4_bg_has_super(sb, group));
|
||||
|
|
Loading…
Reference in New Issue