From 85f1c93dd284c425d6c5423c7bbb1b709b0c00c4 Mon Sep 17 00:00:00 2001 From: Jan Kara Date: Mon, 18 Jun 2018 23:19:55 -0400 Subject: [PATCH] libext2fs: fix overflow when checking s_inodes_count in ext2fs_open() 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 Signed-off-by: Jan Kara Signed-off-by: Theodore Ts'o --- lib/ext2fs/openfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/ext2fs/openfs.c b/lib/ext2fs/openfs.c index 2172957..93d41b3 100644 --- a/lib/ext2fs/openfs.c +++ b/lib/ext2fs/openfs.c @@ -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; -- 1.8.3.1