On Fri, Mar 24, 2006 at 03:34:01PM +0100, Blaisorblade wrote:
> The EIP is inside the stub code page, and the two pages are one near the 
> other.

I think you're going to have to talk more slowly and use shorter words.

The problem is that we need to figure out at runtime where to put the
stub pages, correct?  And we can't use the code stub page to figure out 
where it is, because we haven't mapped it yet, because we don't know where
to put it, correct?

> However, currently, the rounding can't be 0.5G, it must be 0.25G with the 
> current code, and it's still fragile if the host code is changed.
> 
> (arch/i386/Kconfig)
> config PAGE_OFFSET
>         hex
>         default 0xB0000000 if VMSPLIT_3G_OPT
>         default 0x78000000 if VMSPLIT_2G
>         default 0x40000000 if VMSPLIT_1G
>         default 0xC0000000

How much can stack randomization vary?  If it can vary more than the
split varies, which I would expect, then rounding the stack pointer
isn't going to work.

Another approach is to start with the current top of stack and try
mapping pages at increments equal to the smallest split granularity
that we think we are going to see, until one fails.

                                Jeff


-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
User-mode-linux-user mailing list
User-mode-linux-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-user

Reply via email to