mirror of
https://github.com/torvalds/linux.git
synced 2026-06-08 14:42:37 +02:00
ext4: fix overflow when updating superblock backups after resize
commit 9378c6768e upstream.
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
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Lukas Czerner <lczerner@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
209f5484ef
commit
57ce0ed4fb
|
|
@ -1066,7 +1066,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
Block a user