]> git.ipfire.org Git - thirdparty/e2fsprogs.git/commitdiff
tune2fs: disallow tune2fs to set inode size larger than block size
authorAkira Fujita <a-fujita@rs.jp.nec.com>
Mon, 22 Apr 2013 03:14:28 +0000 (23:14 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Mon, 22 Apr 2013 03:14:28 +0000 (23:14 -0400)
Disallow tune2fs command to set the inode size to be larger than the
block size.  Without this patch, tune2fs makes the file system to be
unmountable.

Steps to reproduce:

1.Create ext4 without flex_bg (or just create ext3)
  # mke2fs -t ext4 -O ^flex_bg DEV

2.Set inode size larger than block size
  # tune2fs -I 8192 DEV

3. We failed to mount FS
  # mount DEV MP
    mount: wrong fs type, bad option, bad superblock on /dev/sda7,
           missing codepage or helper program, or other error
           In some cases useful info is found in syslog - try
           dmesg | tail  or so

Signed-off-by: Akira Fujita <a-fujita@rs.jp.nec.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
misc/tune2fs.c

index 849f3a0e0bdf96c23200c4cee495007a9064c360..47a7711f76bed87b1cfb40f5f9c696df9c6eb8cd 100644 (file)
@@ -1944,6 +1944,12 @@ retry_open:
                        rc = 1;
                        goto closefs;
                }
+               if (new_inode_size > fs->blocksize) {
+                       fprintf(stderr, _("Invalid inode size %lu (max %d)\n"),
+                               new_inode_size, fs->blocksize);
+                       rc = 1;
+                       goto closefs;
+               }
 
                /*
                 * If inode resize is requested use the