ChangeLog, openfs.c:
openfs.c (ext2fs_open): Check to make sure that the number of blocks
per group is not zero --- if so, it must be a bad superblock!
diff --git a/lib/ext2fs/openfs.c b/lib/ext2fs/openfs.c
index 54aeedc..b0b433f 100644
--- a/lib/ext2fs/openfs.c
+++ b/lib/ext2fs/openfs.c
@@ -163,6 +163,10 @@
/*
* Read group descriptors
*/
+ if ((EXT2_BLOCKS_PER_GROUP(fs->super)) == 0) {
+ retval = EXT2_ET_CORRUPT_SUPERBLOCK;
+ goto cleanup;
+ }
fs->group_desc_count = (fs->super->s_blocks_count -
fs->super->s_first_data_block +
EXT2_BLOCKS_PER_GROUP(fs->super) - 1)