[prev in list] [next in list] [prev in thread] [next in thread]
List: linux-man
Subject: prctl() PR_SET_PDEATHSIG race condition note
From: Georg Sauthoff <mail () georg ! so>
Date: 2016-04-29 19:06:06
Message-ID: 20160429190606.GA30805 () dell12 ! lru ! li
[Download RAW message or body]
Hello,
regarding the PR_SET_PDEATHSIG paragraph in prctl(2):
> PR_SET_PDEATHSIG (since Linux 2.1.57)
> Set the parent death signal of the calling process to arg2
> (either a signal value in the range 1..maxsig, or 0 to clear).
> This is the signal that the calling process will get when its
> parent dies. This value is cleared for the child of a fork(2)
> and (since Linux 2.4.36 / 2.6.23) when executing a set-user-ID
> or set-group-ID binary, or a binary that has associated
> capabilities (see capabilities(7)). This value is preserved
> across execve(2).
>
> Warning: the "parent" in this case is considered to be the
> thread that created this process. In other words, the signal
> will be sent when that thread terminates (via, for example,
> pthread_exit(3)), rather than after all of the threads in the
> parent process terminate.
Perhaps it makes sense to add a note regarding a race condition
between the child being able to call prctl() and an early exit of
the parent process (after a successful fork()); i.e. when the
parent death signal is installed after the parent has already
died.
See for example following links that may indicate that this isn't
necessarily obvious:
- http://lkml.iu.edu/hypermail/linux/kernel/0003.1/0769.html
- http://stackoverflow.com/a/284443/427158
If you like you can include a code snippet how to use
prctl(PR_SET_PDEATHSIGH, ) race condition free, cf. the snippets
I've included in my answer on SO:
http://stackoverflow.com/a/36945270/427158
Best regards
Georg
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic