[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <45B47C68.2000903@exalead.com>
Date: Mon, 22 Jan 2007 09:57:12 +0100
From: Xavier Roche <roche+kml2@...lead.com>
To: linux-kernel@...r.kernel.org
Subject: sigaction's ucontext_t with incorrect stack reference when SA_SIGINFO
is being used ?
Hi folks,
I have a probably louzy question regarding sigaction() behaviour when an
alternate signal stack is used: it seems that I can not get the user
stack reference in the ucontext_t stack context ; ie. the uc_stack
member contains reference of the alternate signal stack, not the stack
that was used before the crash.
Is this is a normal behaviour ? Is there a way to retrieve the original
user's stack inside the signal callback ?
The example given below demonstrates the issue:
top of stack==0x7fffff3d7000, alternative_stack==0x501010
SEGV==0x7fffff3d6ff8; sp==0x501010; current stack is the alternate stack
It is obvious that the SEGV was a stack overflow: the si_addr address is
just on the page below the stack limit.
View attachment "stacktest.c" of type "text/x-csrc" (2145 bytes)
Powered by blists - more mailing lists