]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
* grub-core/disk/mdraid1x_linux.c (grub_mdraid_detect): Don't try to
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Fri, 19 Nov 2010 21:48:26 +0000 (22:48 +0100)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Fri, 19 Nov 2010 21:48:26 +0000 (22:48 +0100)
retrieve the metadat sector if size isn't known.
* grub-core/disk/mdraid_linux.c (grub_mdraid_detect): Likewise.

ChangeLog
grub-core/disk/mdraid1x_linux.c
grub-core/disk/mdraid_linux.c

index b78bdcce093327838ac02d2bce7e8fdf5f17b332..44e8badf289773f39734092111cde38b48201d93 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2010-11-19  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       * grub-core/disk/mdraid1x_linux.c (grub_mdraid_detect): Don't try to
+       retrieve the metadat sector if size isn't known.
+       * grub-core/disk/mdraid_linux.c (grub_mdraid_detect): Likewise.
+
 2010-11-18  Robert Millan  <rmh@gnu.org>
 
        * grub-core/fs/btrfs.c (grub_btrfs_mount): Replace grub_strncmp()
index dd60df69567d7983df260c42661502a0b7504d06..b1fce86a0b6849be9631a83539a04dc6d28a826a 100644 (file)
@@ -123,6 +123,9 @@ grub_mdraid_detect (grub_disk_t disk, struct grub_raid_array *array,
 
   for (minor_version = 0; minor_version < 3; ++minor_version)
     {
+      if (size == GRUB_DISK_SIZE_UNKNOWN && minor_version == 0)
+       continue;
+       
       switch (minor_version)
        {
        case 0:
index f5cad9dbf6be044f3d8efe803a82f6cd50715a62..dc0d80ffd4aa8bc706f2063caa2ed5262e1ea1b5 100644 (file)
@@ -170,6 +170,8 @@ grub_mdraid_detect (grub_disk_t disk, struct grub_raid_array *array,
 
   /* The sector where the mdraid 0.90 superblock is stored, if available.  */
   size = grub_disk_get_size (disk);
+  if (size == GRUB_DISK_SIZE_UNKNOWN)
+    return grub_error (GRUB_ERR_OUT_OF_RANGE, "not 0.9x raid");
   sector = NEW_SIZE_SECTORS (size);
 
   if (grub_disk_read (disk, sector, 0, SB_BYTES, &sb))