Bug#478401: Segment fault on grub-probe

Robert Millan rmh at aybabtu.com
Wed May 7 14:33:08 UTC 2008


On Tue, May 06, 2008 at 11:02:20PM -0430, Isaac M. Marcos wrote:
> > >
> > > Program received signal SIGSEGV, Segmentation fault.
> > > 0x0000000000421b7c in grub_lvm_scan_device (name=0x638210 "hd1,5") at
> > > /home/immf/grub2-1.96+20080429/disk/lvm.c:305 305       while (*q != ' ')
> >
> > Please try:
> >
> > print q
> > print metadatabuf
> > print rlocn->offset
> 
> (gdb) run -t device /
> Starting program: /usr/sbin/grub-probe -t device /
> 
> Program received signal SIGSEGV, Segmentation fault.
> 0x0000000000421b7c in grub_lvm_scan_device (name=0x638210 "hd1,5") 
> at /home/immf/grub2-1.96+20080429/disk/lvm.c:305
> 305       while (*q != ' ')
> (gdb) print q
> $1 = 0x78b000 <Address 0x78b000 out of bounds>
> (gdb) print metadatabuf
> $2 = 0x73ba00 "�N\203\220 LVM2 x[5A%r0N*>\001"		# the ? symbol is a 0x00
> (gdb) print rlocn->offset
> $3 = 92672

Looks like rlocn->offset is messed up.  Maybe it's mdah->raw_locns fault,
or maybe on its own ground.

In either case, I'm not sure what we're supposed to do about it.  Appliing
an heuristic to rlocn->offset isn't good...

Please could you bring this to upstream (grub-devel at gnu.org)?  Maybe someone
with a better understanding of this code can help.

-- 
Robert Millan

<GPLv2> I know my rights; I want my phone call!
<DRM> What use is a phone call… if you are unable to speak?
(as seen on /.)





More information about the Pkg-grub-devel mailing list