Whamcloud - gitweb
libext2fs: fix overflow when checking s_inodes_count in ext2fs_open()
authorJan Kara <jack@suse.cz>
Tue, 19 Jun 2018 03:19:55 +0000 (23:19 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Tue, 19 Jun 2018 14:44:50 +0000 (10:44 -0400)
The check whether s_inodes_count is correct in ext2fs_open() can
overflow and thus not catch all problematic cases. Fix the test.

Reviewed-by: Andreas Dilger <adilger@dilger.ca>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
lib/ext2fs/openfs.c

index 2172957..93d41b3 100644 (file)
@@ -380,7 +380,7 @@ errcode_t ext2fs_open2(const char *name, const char *io_options,
                goto cleanup;
        }
        fs->group_desc_count =  groups_cnt;
-       if (fs->group_desc_count * EXT2_INODES_PER_GROUP(fs->super) !=
+       if ((__u64)fs->group_desc_count * EXT2_INODES_PER_GROUP(fs->super) !=
            fs->super->s_inodes_count) {
                retval = EXT2_ET_CORRUPT_SUPERBLOCK;
                goto cleanup;