Re: Segfault on the i386 enter instruction

From: Denis Vlasenko
Date: Fri May 12 2006 - 10:04:54 EST


On Friday 12 May 2006 16:50, Andi Kleen wrote:
> Tomasz Malesinski <tmal@xxxxxxxxxxxx> writes:
>
> > The code attached below segfaults on the enter instruction. It works
> > when a stack frame is created by the three commented out
> > instructions and also when the first operand of the enter instruction
> > is small (less than about 6500 on my system).
>
> The difference is the value of the stack pointer when the page fault
> of extending the stack downwards occurs. For the long sequence
> ESP is already changed when it happens. For ENTER the CPU undoes
> the change before raising the fault. The page fault handler
> checks the page fault against ESP to catch invalid references below
> the stack.
>
> I don't think the 64bit kernel does anything different here than the
> 32bit kernel. I tested it on a 32bit box and it faulted there too.

For me, it doesn't fault. I looked with strace. It doesn't fault even with
enter $64008, $0

Is it something in newest kernels? Mine is 2.6.16-rc5.
--
vda
-
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/