summaryrefslogtreecommitdiff
path: root/gnu/build/linux-container.scm
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2022-09-27 15:59:30 -0400
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2022-09-27 15:59:30 -0400
commit990a4822f1cb45c1470fe38cbf17fd7bb54d0088 (patch)
tree1c1ff41c9264fe5af5ee0b8723d1e367e958c051 /gnu/build/linux-container.scm
parent91db77c955cc7ef95dd8b535e40d6b4cf28669ec (diff)
parent3c6e220d8100281074c414a43c1efe9a01b53771 (diff)
Merge branch 'staging' into core-updates
Conflicts resolved in: gnu/local.mk gnu/packages/cran.scm gnu/packages/gnome.scm gnu/packages/gtk.scm gnu/packages/icu4c.scm gnu/packages/java.scm gnu/packages/machine-learning.scm gnu/packages/tex.scm
Diffstat (limited to 'gnu/build/linux-container.scm')
-rw-r--r--gnu/build/linux-container.scm8
1 files changed, 6 insertions, 2 deletions
diff --git a/gnu/build/linux-container.scm b/gnu/build/linux-container.scm
index a0c8174721..72e3a45422 100644
--- a/gnu/build/linux-container.scm
+++ b/gnu/build/linux-container.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 David Thompson <davet@gnu.org>
-;;; Copyright © 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2017-2019, 2022 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -233,7 +233,7 @@ that host UIDs (respectively GIDs) map to in the namespace."
;; The parent process must initialize the user namespace for the child
;; before it can boot. To negotiate this, a pipe is used such that the
;; child process blocks until the parent writes to it.
- (match (socketpair PF_UNIX SOCK_STREAM 0)
+ (match (socketpair PF_UNIX (logior SOCK_CLOEXEC SOCK_STREAM) 0)
((child . parent)
(let ((flags (namespaces->bit-mask namespaces)))
(match (clone flags)
@@ -442,6 +442,10 @@ return the exit status."
"Like 'container-excursion', but return the return value of THUNK."
(match (pipe)
((in . out)
+ ;; Make sure IN and OUT are not inherited if THUNK forks + execs.
+ (fcntl in F_SETFD FD_CLOEXEC)
+ (fcntl out F_SETFD FD_CLOEXEC)
+
(match (container-excursion pid
(lambda ()
(close-port in)