diff options
author | Oleg Nesterov <oleg@tv-sign.ru> | 2008-05-26 20:55:42 +0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-05-26 10:37:07 -0700 |
commit | cbaffba12ce08beb3e80bfda148ee0fa14aac188 (patch) | |
tree | b35f29814b46593d864e8c8921e9eccac5a5a173 /fs | |
parent | c8e85b4f4b9ee23bf0e79bdeb3da274a0f9c663f (diff) | |
download | op-kernel-dev-cbaffba12ce08beb3e80bfda148ee0fa14aac188.zip op-kernel-dev-cbaffba12ce08beb3e80bfda148ee0fa14aac188.tar.gz |
posix timers: discard SI_TIMER signals on exec
Based on Roland's patch. This approach was suggested by Austin Clements
from the very beginning, and then by Linus.
As Austin pointed out, the execing task can be killed by SI_TIMER signal
because exec flushes the signal handlers, but doesn't discard the pending
signals generated by posix timers. Perhaps not a bug, but people find this
surprising. See http://bugzilla.kernel.org/show_bug.cgi?id=10460
Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Cc: Austin Clements <amdragon+kernelbugzilla@mit.edu>
Cc: Roland McGrath <roland@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/exec.c | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -860,6 +860,7 @@ static int de_thread(struct task_struct *tsk) no_thread_group: exit_itimers(sig); + flush_itimer_signals(); if (leader) release_task(leader); |