]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
Reject NILFS2 superblocks with over 1GiB blocks.
authorVladimir Serbinenko <phcoder@gmail.com>
Tue, 20 Jan 2015 13:27:27 +0000 (14:27 +0100)
committerVladimir Serbinenko <phcoder@gmail.com>
Wed, 21 Jan 2015 16:42:10 +0000 (17:42 +0100)
* grub-core/fs/nilfs2.c (grub_nilfs2_valid_sb): Check that
block size is <= 1GiB.

ChangeLog
grub-core/fs/nilfs2.c

index 575bd18bed5cea5dc809594587ee9f457575c644..454aef8ed94354ee53201dc4fce9186335d7aa21 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2015-01-20  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       Reject NILFS2 superblocks with over 1GiB blocks.
+
+       * grub-core/fs/nilfs2.c (grub_nilfs2_valid_sb): Check that
+       block size is <= 1GiB.
+
 2015-01-20  Vladimir Serbinenko  <phcoder@gmail.com>
 
        * grub-core/disk/ata.c (grub_ata_setaddress): Check that geometry
index 388ee188edcee33a5c883f876d05f0dc9bdd9cbe..598a2a55baf24bf154eb497333e499caee66de05 100644 (file)
@@ -724,6 +724,10 @@ grub_nilfs2_valid_sb (struct grub_nilfs2_super_block *sbp)
   if (grub_le_to_cpu32 (sbp->s_rev_level) != NILFS_SUPORT_REV)
     return 0;
 
+  /* 20 already means 1GiB blocks. We don't want to deal with blocks overflowing int32. */
+  if (grub_le_to_cpu32 (sbp->s_log_block_size) > 20)
+    return 0;
+
   return 1;
 }