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
[email protected]
http://lists.gnu.org/mailman/listinfo/grub-devel