Gcc assumes the stack is executable when it passes nested functions
as parameters (nested functions require a pointer to the scope, so
a small function is pushed on teh stack that adds an extra argument.
Not standard C, anyway.
>created a new descriptor instead, leaving the old one with its original
>limit, since that still allows to execute some code on the stack when needed,
>by using old code segment selector. For example, the kernel itself needs that
>ability to return from signal handlers.
Can you use mprotect to deprotect the stack?
I'm told the x86 systems don't have page granularity when it comes to
execute permissions, only per descriptor (of which you have four?)?
Casper