[PATCH 0/5] ptrace-utrace: fix exit_ptrace() vs ptrace_report_signal() races

2010-12-10 Thread Oleg Nesterov
In short: exit_ptrace()-ptrace_detach_task() is very wrong when it
tries to detach the !stopped tracee, we can not trust get_stop_event()
in this case.

This means that in the case like

ptrace(PTRACE_CONT, ..., SIGXXX);
exit(); // --- calls ptrace_detach_task()

the tracee can miss SIGXXX if ptrace_detach_task() does
utrace_control(UTRACE_DETACH) before the tracee calls -report_signal().

5/5 is the actual fix. 1-4 are preparations to simplify the review
and document the changes.

Oleg.



Re: [PATCH 0/5] ptrace-utrace: fix exit_ptrace() vs ptrace_report_signal() races

2010-12-10 Thread Roland McGrath
I've merged these patches to the utrace-ptrace branch, now merged up to
2.6.37-rc5, and also the 2.6.34 and 2.6.35 backport branches.  The 2.6.33
backport branch is no longer being maintained.  I didn't update the 2.6.36
backport branch and probably won't maintain it unless some Fedora release
starts using that kernel version (rawhide is already on 2.6.37-rc5 now).


Thanks,
Roland