]> git.proxmox.com Git - grub2.git/commitdiff
2009-07-31 Vladimir Serbinenko <phcoder@gmail.com>
authorphcoder <phcoder@localhost>
Fri, 31 Jul 2009 16:04:27 +0000 (16:04 +0000)
committerphcoder <phcoder@localhost>
Fri, 31 Jul 2009 16:04:27 +0000 (16:04 +0000)
* partmap/pc.c (pc_partition_map_iterate): Check that boot flags are
valid.

ChangeLog
partmap/pc.c

index 0ca68bac1f419057b25cad6a6f0089ea9e678d9e..e553828728b1270e55baadb5c3450eea6d65c84d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2009-07-31  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       * partmap/pc.c (pc_partition_map_iterate): Check that boot flags are
+       valid.
+
 2009-07-31  Bean  <bean123ch@gmail.com>
 
        * fs/xfs.c (grub_xfs_sblock): Change unused5 field to log2_sect and
index 6f68ecf93372480626c785378d299c6ea24f2e77..6a2efd21e23e137a76dcd0b84f94d9d78ddff673 100644 (file)
@@ -121,6 +121,10 @@ pc_partition_map_iterate (grub_disk_t disk,
       if (mbr.signature != grub_cpu_to_le16 (GRUB_PC_PARTITION_SIGNATURE))
        return grub_error (GRUB_ERR_BAD_PART_TABLE, "no signature");
 
+      for (i = 0; i < 4; i++)
+       if (mbr.entries[i].flag & 0x7f)
+         return grub_error (GRUB_ERR_BAD_PART_TABLE, "bad boot flag");
+
       /* Analyze DOS partitions.  */
       for (p.index = 0; p.index < 4; p.index++)
        {