On Wed, 2008-05-21 at 20:20 -0430, Isaac M. Marcos wrote:
> Today, I bump on this problem again on updating kernel. Because of this 
> fault, 
> update-initramfs reports a failure. It can't find "/".
> 
> grub-probe -t device /        -->     segfault!!

This patch should help.  It checks for the buffer overrun.  I still feel
uneasy about applying it because it hides a bigger problem.

diff --git a/disk/lvm.c b/disk/lvm.c
index 1d898ff..997d15c 100644
--- a/disk/lvm.c
+++ b/disk/lvm.c
@@ -302,9 +302,12 @@ grub_lvm_scan_device (const char *name)
   rlocn = mdah->raw_locns;
   p = q = metadatabuf + grub_le_to_cpu64 (rlocn->offset);
 
-  while (*q != ' ')
+  while (*q != ' ' && q < metadatabuf + mda_size)
     q++;
 
+  if (q == metadatabuf + mda_size)
+    goto fail2;
+
   vgname_len = q - p;
   vgname = grub_malloc (vgname_len + 1);
   if (!vgname)


-- 
Regards,
Pavel Roskin


_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to