On 30.01.2011 18:42, Boyd Stephen Smith Jr. wrote:
> error: superfluous RAID member (2 found).
> error: superfluous RAID member (5 found).
> error: superfluous RAID member (2 found).
> error: superfluous RAID member (2 found
Please try the attached patch

-- 
Regards
Vladimir 'φ-coder/phcoder' Serbinenko

=== modified file 'grub-core/disk/mdraid1x_linux.c'
--- grub-core/disk/mdraid1x_linux.c	2011-03-29 09:51:58 +0000
+++ grub-core/disk/mdraid1x_linux.c	2011-04-03 20:26:44 +0000
@@ -200,11 +200,14 @@
 
 	if (grub_le_to_cpu32 (real_sb->dev_number) >=
 	    grub_le_to_cpu32 (real_sb->max_dev))
-	  return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET,
+	  return grub_error (GRUB_ERR_OUT_OF_RANGE,
 			     "spares aren't implemented");
 
 	array->index = grub_le_to_cpu16
 	  (real_sb->dev_roles[grub_le_to_cpu32 (real_sb->dev_number)]);
+	if (array->index >= array->total_devs)
+	  return grub_error (GRUB_ERR_OUT_OF_RANGE,
+			     "spares aren't implemented");
 	array->uuid_len = 16;
 	array->uuid = grub_malloc (16);
 	if (!array->uuid)

=== modified file 'grub-core/disk/mdraid_linux.c'
--- grub-core/disk/mdraid_linux.c	2011-01-07 15:17:24 +0000
+++ grub-core/disk/mdraid_linux.c	2011-04-03 20:26:54 +0000
@@ -202,7 +202,7 @@
 		       "unsupported RAID level: %d", level);
   if (grub_le_to_cpu32 (sb.this_disk.number) == 0xffff
       || grub_le_to_cpu32 (sb.this_disk.number) == 0xfffe)
-    return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET,
+    return grub_error (GRUB_ERR_OUT_OF_RANGE,
 		       "spares aren't implemented");
 
   array->name = NULL;

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to