ext4: fix overflow when updating superblock backups after resize
authorJan Kara <jack@suse.cz>
Thu, 30 Oct 2014 14:52:57 +0000 (10:52 -0400)
committerZefan Li <lizefan@huawei.com>
Mon, 2 Feb 2015 09:05:08 +0000 (17:05 +0800)
commit64c7113dc103815f5631f8ed18e10b2b275fa1a0
treef02ad97172a3a9257ed74cecb433573c28211ac8
parent638c69e2d59422dd2bd63d80f4d0b322ba9a14fb
ext4: fix overflow when updating superblock backups after resize

commit 9378c6768e4fca48971e7b6a9075bc006eda981d 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>
[lizf: Backported to 3.4: adjust context]
Signed-off-by: Zefan Li <lizefan@huawei.com>
fs/ext4/resize.c