Re: vm86 segfaults with NX bit

From: Takashi Iwai
Date: Fri Nov 21 2008 - 06:38:55 EST


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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/