Hi Jann, Your mail is a little cryptic. It would be best to start with a brief summary of your point--something like the text of your patch at the end of the mail. On 01/06/2016 07:23 PM, Jann Horn wrote: > Proof: > In kernel/sys.c: > > case PR_SET_PDEATHSIG: > if (!valid_signal(arg2)) { > error = -EINVAL; > break; > } > me->pdeath_signal = arg2; > break; I don't understand how the code above relates to the point you want to make. (Or maybe you mean: "look, there's no check here to see that if the parent is already dead"; but it would help to state that explicitly). > Testcase: > > #include <sys/prctl.h> > #include <err.h> > #include <unistd.h> > #include <signal.h> > #include <stdio.h> > > void ponk(int s) { > puts("ponk!"); > } > > int main(void) { > if (fork() == 0) { > if (fork() == 0) { > sleep(1); > signal(SIGUSR1, ponk); > prctl(PR_SET_PDEATHSIG, SIGUSR1, 0, 0, 0); > sleep(1); > return 0; > } > return 0; > } > > sleep(3); > return 0; > } > --- > man2/prctl.2 | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/man2/prctl.2 b/man2/prctl.2 > index 5cea3bb..3dce8e9 100644 > --- a/man2/prctl.2 > +++ b/man2/prctl.2 > @@ -670,6 +670,9 @@ In other words, the signal will be sent when that thread terminates > (via, for example, > .BR pthread_exit (3)), > rather than after all of the threads in the parent process terminate. > + > +If the parent has already died by the time the parent death signal > +is set, the new parent death signal will not be sent. In a way, this seems almost obvious. But perhaps it is better to make the point explicitly, as you suggest. But, because there may have been a previous PR_SET_PDEATHSIG, I'd prefer something like this: [[ If the caller's parent has already died by the time of this PR_SET_PDEATHSIG operation, the operation shall have no effect. ]] What do you think? Thanks, Michael -- Michael Kerrisk Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/ Linux/UNIX System Programming Training: http://man7.org/training/ -- To unsubscribe from this list: send the line "unsubscribe linux-man" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html