guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

342/376: Don't do vfork in conjunction with setuid


From: Ludovic Courtès
Subject: 342/376: Don't do vfork in conjunction with setuid
Date: Wed, 28 Jan 2015 22:06:03 +0000

civodul pushed a commit to tag 1.8
in repository guix.

commit 851b47bd7de35f4464a67c991d55cbcb07230edc
Author: Eelco Dolstra <address@hidden>
Date:   Wed Dec 10 18:01:01 2014 +0100

    Don't do vfork in conjunction with setuid
---
 src/libstore/build.cc |    2 ++
 src/libutil/util.cc   |    3 +++
 2 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/src/libstore/build.cc b/src/libstore/build.cc
index ab8923b..36436d7 100644
--- a/src/libstore/build.cc
+++ b/src/libstore/build.cc
@@ -1914,6 +1914,8 @@ void DerivationGoal::startBuilder()
     builderOut.create();
 
     /* Fork a child to build the package. */
+    ProcessOptions options;
+    options.allowVfork = !buildUser.enabled();
     pid = startProcess([&]() {
         runChild();
     });
diff --git a/src/libutil/util.cc b/src/libutil/util.cc
index bdd114c..5895e72 100644
--- a/src/libutil/util.cc
+++ b/src/libutil/util.cc
@@ -825,6 +825,9 @@ void killUser(uid_t uid)
        users to which the current process can send signals.  So we
        fork a process, switch to uid, and send a mass kill. */
 
+    ProcessOptions options;
+    options.allowVfork = false;
+
     Pid pid = startProcess([&]() {
 
         if (setuid(uid) == -1)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]