]> git.baikalelectronics.ru Git - kernel.git/commit
exit_signal: fix the "parent has changed security domain" logic
authorOleg Nesterov <oleg@redhat.com>
Mon, 19 Mar 2012 16:03:41 +0000 (17:03 +0100)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 20 Mar 2012 21:16:50 +0000 (14:16 -0700)
commitc8777e2a3a0fe5e67a98d8e3ce58846a6a9a61dc
treeeef4928c1a0cb1b56eb20f8d0ee592709d533f10
parent281b8932f2bb5d13243ebc635114635b5887f739
exit_signal: fix the "parent has changed security domain" logic

exit_notify() changes ->exit_signal if the parent already did exec.
This doesn't really work, we are not going to send the signal now
if there is another live thread or the exiting task is traced. The
parent can exec before the last dies or the tracer detaches.

Move this check into do_notify_parent() which actually sends the
signal.

The user-visible change is that we do not change ->exit_signal,
and thus the exiting task is still "clone children" for
do_wait()->eligible_child(__WCLONE). Hopefully this is fine, the
current logic is racy anyway.

Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
kernel/exit.c
kernel/signal.c