OSDN Git Service

libext2fs: Add stricter/earlier tests for blocksize in ext2fs_open()
authorManish Katiyar <mkatiyar@gmail.com>
Fri, 11 Jul 2008 21:45:07 +0000 (17:45 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Fri, 11 Jul 2008 21:45:07 +0000 (17:45 -0400)
Signed-off-by: "Manish Katiyar" <mkatiyar@gmail.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
lib/ext2fs/openfs.c

index fc54afe..525693e 100644 (file)
@@ -232,11 +232,12 @@ errcode_t ext2fs_open2(const char *name, const char *io_options,
                }
        }
        
-       fs->blocksize = EXT2_BLOCK_SIZE(fs->super);
-       if (fs->blocksize == 0) {
+       if ((fs->super->s_log_block_size + EXT2_MIN_BLOCK_LOG_SIZE) >
+           EXT2_MAX_BLOCK_LOG_SIZE) {
                retval = EXT2_ET_CORRUPT_SUPERBLOCK;
                goto cleanup;
        }
+       fs->blocksize = EXT2_BLOCK_SIZE(fs->super);
        if (EXT2_INODE_SIZE(fs->super) < EXT2_GOOD_OLD_INODE_SIZE) {
                retval = EXT2_ET_CORRUPT_SUPERBLOCK;
                goto cleanup;