Le 14/03/2012 21:53, Steven Schveighoffer a écrit :
On Wed, 14 Mar 2012 16:45:49 -0400, Don Clugston <d...@nospam.com> wrote:

On 14/03/12 21:31, Steven Schveighoffer wrote:
On Wed, 14 Mar 2012 16:08:29 -0400, Don Clugston <d...@nospam.com> wrote:

Now, your user space handler will cause another segfault when it does
the mov [ESP], 0. I think that gives you an infinite loop.

SEGFAULT inside a SEGV signal handler aborts the program (no way to turn
this off IIRC).

-Steve

But you're not inside the signal handler when it happens. You returned.

Then how does the signal handler do anything? I mean, doesn't it need a
stack? Or does it just affect register variables? Most signal handlers
are normal functions, and isn't there some usage of the stack to save
registers?

It seems there should be a way to turn off the signal handler during the
time when you are suspicous of the stack being the culprit, then
re-engage the signal handler before throwing the error.

-Steve

The address of the instruction being executed is hijacked, so, instead of resuming normal operation after the signal handler exit, it get into the throwing handler.

This is a very nice trick !

Reply via email to