mirror of https://github.com/krallin/tini.git
Fix PR_SET_CHILD_SUBREAPER call
PR_SET_CHILD_SUBREAPER actually requires a non-zero argument to `prctl` in order to work..! Now, this used to work just fine (and currently works in most places) because when we use a libc that doesn't know about PR_SET_CHILD_SUBREAPER, it doesn't do anything about the second argument passed to `pctrl`, so we end up sending some junk in as the second argument. What we send appears to be completely random and as such seems very unlikely to be zero, and so things appear to work (e.g. the tests all pass, etc.). However, using a libc that does know about this argument (e.g. Ubuntu Xenial), things *don't* work because the second argument is automatically set to 0 when we don't provide one. This probably went unnoticed for a while considering that `tini-static` isn't affected (it's built on Trusty), and that this mode isn't enabled by default in the first place.
This commit is contained in:
parent
d83552dfa3
commit
10094b7097
|
@ -306,7 +306,7 @@ int parse_env() {
|
|||
#if HAS_SUBREAPER
|
||||
int register_subreaper () {
|
||||
if (subreaper > 0) {
|
||||
if (prctl(PR_SET_CHILD_SUBREAPER)) {
|
||||
if (prctl(PR_SET_CHILD_SUBREAPER, 1)) {
|
||||
if (errno == EINVAL) {
|
||||
PRINT_FATAL("PR_SET_CHILD_SUBREAPER is unavailable on this platform. Are you using Linux >= 3.4?")
|
||||
} else {
|
||||
|
|
Loading…
Reference in New Issue