diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2006-12-03T00·52+0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2006-12-03T00·52+0000 |
commit | 714fa24cfb5afeb144549e0cc4808cc2a1c459cf (patch) | |
tree | 97faccbf4a0390ee2452a313a5d34cad70e45458 | |
parent | e25fad691aa3ccb492c4fb8840289f76151e553e (diff) |
* Run the worker in a separate session to prevent terminal signals
from interfering.
-rw-r--r-- | src/nix-worker/main.cc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/nix-worker/main.cc b/src/nix-worker/main.cc index fef2c2958aa9..cf550895e4b2 100644 --- a/src/nix-worker/main.cc +++ b/src/nix-worker/main.cc @@ -164,6 +164,12 @@ void run(Strings args) if (slave) { FdSource source(STDIN_FILENO); FdSink sink(STDOUT_FILENO); + + /* This prevents us from receiving signals from the terminal + when we're running in setuid mode. */ + if (setsid() == -1) + throw SysError(format("creating a new session")); + processConnection(source, sink); } |