lkml.org 
[lkml]   [2004]   [Jun]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: 2.6.x signal handler bug
On Sat, Jun 26, 2004 at 09:05:34AM -0700, Davide Libenzi wrote:

> You're receiving a SIGSEGV while SIGSEGV is blocked (force_sig_info). The
> force_sig_info call wants to send a signal that the task can't refuse
> (kinda The GodFather offers ;). The kernel will noticed this and will
> restore the handler to SIG_DFL.

Yes.

So checking whether this is POSIX conforming:

- Blocking a signal in its signal handler is explicitly allowed.
(signal(3p))
- It is unspecified what longjmp() does with the signal mask.
(longjmp(3p))
- The SIGSEGV that occurs during a stack overflow is of the GodFather kind.
(getrlimit(3p))
- If SIGSEGV is generated while blocked, the result is undefined
(sigprocmask(3p))

So, maybe the restoring to SIG_DFL was not required, but it doesnt seem
incorrect either. It may be a bit surprising.

Andries
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 14:04    [from the cache]
©2003-2011 Jasper Spaans