Bug#637208: segfault in grub-setup
Stephane Chazelas
stephane.chazelas at gmail.com
Tue Sep 6 07:45:42 UTC 2011
I do get a segfault as well when doing a grub-setup/grub-install
on a mdraid with 1.2 metadata.
The segv is in:
grub_util_biosdisk_is_floppy() because the disk->id for the root
device is not a bios disk id, but a big number that is the
"array id". The patch below seems to fix it for me, though I
can't tell it's the right fix or not (probably not).
--- a/util/grub-setup.c 2011-09-05 12:11:31.864955442 +0100
+++ b/util/grub-setup.c 2011-09-05 13:00:24.891368760 +0100
@@ -315,7 +315,7 @@
/* If DEST_DRIVE is a hard disk, enable the workaround, which is
for buggy BIOSes which don't pass boot drive correctly. Instead,
they pass 0x00 or 0x01 even when booted from 0x80. */
- if (!allow_floppy && !grub_util_biosdisk_is_floppy (dest_dev->disk))
+ if (!allow_floppy && dest_dev->disk->dev->id == GRUB_DISK_DEVICE_BIOSDISK_ID && !grub_util_biosdisk_is_floppy (dest_dev->disk))
/* Replace the jmp (2 bytes) with double nop's. */
*boot_drive_check = 0x9090;
}
(might be same bug as 632048 to which I've sent this comment
too).
--
Stephane
More information about the Pkg-grub-devel
mailing list