diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2006-12-06T17·29+0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2006-12-06T17·29+0000 |
commit | 751f6d2157a1b89f2463b68a90f8515deb3f942c (patch) | |
tree | 1a1bb95535212fdc0646a0385053bf1e635af414 /src/libmain/setuid-common.hh | |
parent | 9f0efa6611d010bf2fb88a2f6a583c4f32fd89ac (diff) |
* nix-setuid-helper: allow running programs under a different uid.
Diffstat (limited to 'src/libmain/setuid-common.hh')
-rw-r--r-- | src/libmain/setuid-common.hh | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/libmain/setuid-common.hh b/src/libmain/setuid-common.hh new file mode 100644 index 000000000000..a3e840996161 --- /dev/null +++ b/src/libmain/setuid-common.hh @@ -0,0 +1,22 @@ +/* Code shared between libmain and nix-setuid-helper. */ + +extern char * * environ; + + +namespace nix { + + +void setuidCleanup() +{ + /* Don't trust the environment. */ + environ = 0; + + /* Make sure that file descriptors 0, 1, 2 are open. */ + for (int fd = 0; fd <= 2; ++fd) { + struct stat st; + if (fstat(fd, &st) == -1) abort(); + } +} + + +} |