summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2020-09-16 22:11:48 +0200
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2020-09-20 12:13:39 +0200
commita049ddfc61e20b19fbb64d59602e25e8ccad140e (patch)
treec6a218eb413ffaaee845587f1bd4de637595903f
parent0dccd1f82b8f8b30bd6b059eba9254a08fa54861 (diff)
downloadsystemd-a049ddfc61e20b19fbb64d59602e25e8ccad140e.tar.gz
nspawn: check return of setsid()
Let's verify that everything works the way we expect it to work, hence check setsid() return code. (cherry picked from commit efe426624046089b74b70708e61f304f3cd414a7) (cherry picked from commit 6f9c8af500fd4362d656917703eab4f941e7e45a)
-rw-r--r--src/nspawn/nspawn-stub-pid1.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/nspawn/nspawn-stub-pid1.c b/src/nspawn/nspawn-stub-pid1.c
index d86dd23185..f785a3b248 100644
--- a/src/nspawn/nspawn-stub-pid1.c
+++ b/src/nspawn/nspawn-stub-pid1.c
@@ -66,7 +66,10 @@ int stub_pid1(sd_id128_t uuid) {
if (pid == 0) {
/* Return in the child */
assert_se(sigprocmask(SIG_SETMASK, &oldmask, NULL) >= 0);
- setsid();
+
+ if (setsid() < 0)
+ return log_error_errno(errno, "Failed to become session leader in payload process: %m");
+
return 0;
}