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