Messages in this thread | | | Date | Fri, 21 Nov 2008 12:38:42 +0100 | From | Takashi Iwai <> | Subject | Re: vm86 segfaults with NX bit |
| |
At Thu, 20 Nov 2008 13:24:38 -0800, H. Peter Anvin wrote: > > Takashi Iwai wrote: > >>>> > >>> did the code that mapped this memory setup use PROT_EXEC ? > >> A good question... > >> Luc, Egbert, how does VESA driver handle it? > > > > Just looking through the vesa directory of xorg-server code, PROT_EXEC > > is passed for all mappings, at least. > > > > Please correct me if I'm looking at a wrong place... > > > > Please do an strace of the X server startup up to the point of the crash.
Well, it's not exactly a crash. VESA driver catches SIGSEGV in its signal handler, spews the error messages and skips the vm86 operation. The segfault occurs during every vm86old syscall.
> I am betting that PROT_EXEC is missing from an mmap(), or that it needs > an additional mprotect().
PROT_EXEC seems used in every mmap. But, VESA and int10 codes in xorg is old and hard to follow for me.
Hopefully Egbert can give us a better insight...
Takashi
| |