[Prev][Next][Index][Thread]

Executor/LinuxSVGA/ELF + 1.3.x crashes traced (not an Executor bug!)



	By running executor-svga.elf through strace, I was able to trace the
crashes during the init sequence to a pair of bugs within Svgalib 1.2.8 and
Linux.  I use a Mach32 card, but I suspect all linear-mapping SVGAlib drivers
might exhibit this bug.

	In particular, with SVGAlib 1.2.8, the Mach32 driver uses 
0x40000000 as the location of the frame buffer.  The bad news is that ld.so
loads various libraries in that very same space.  The Linux bug then allows
the mmap of the frame buffer memory to go through, even though there is
mprotect-ed memory within the area.  The libraries are mapped out of the
executor process in favor of video memory, which is then executed, causing
a bus fault.

	Upgrading to SVGAlib 1.2.9 solved the problem, since it is not picky
over where the mmap takes place - at least with the Mach32 driver... 
nonetheless, I'll send a bug report to Linux-kernel to see if there is really
a Linux bug...

	(By the way, Executor calls getpid() a *lot* - that might be in SVGAlib,
but I figure it might as well be able to remember it's own pid :)

	- Chad