diff options
| author | bors <bors@rust-lang.org> | 2019-08-23 08:58:24 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2019-08-23 08:58:24 +0000 |
| commit | f834695781d00daa61d04e11720403ff32cb0e78 (patch) | |
| tree | 218129b5d456e040429c2c71d923909805e9c8a0 /src/libstd | |
| parent | 0507d49755b9f506da8770af757704eb5c2b54d7 (diff) | |
| parent | 2ff1f45ead012271823aa8c9693717b493b72fa6 (diff) | |
| download | rust-f834695781d00daa61d04e11720403ff32cb0e78.tar.gz rust-f834695781d00daa61d04e11720403ff32cb0e78.zip | |
Auto merge of #63521 - newpavlov:redox_builder, r=pietroalbini
Re-enable Redox builder (take 2) Closes: #63160
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/sys/unix/process/process_unix.rs | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/src/libstd/sys/unix/process/process_unix.rs b/src/libstd/sys/unix/process/process_unix.rs index a9711c71b7a..e6a742bd45d 100644 --- a/src/libstd/sys/unix/process/process_unix.rs +++ b/src/libstd/sys/unix/process/process_unix.rs @@ -178,23 +178,22 @@ impl Command { cvt_r(|| libc::dup2(fd, libc::STDERR_FILENO))?; } - if cfg!(not(any(target_os = "l4re"))) { + #[cfg(not(target_os = "l4re"))] + { if let Some(u) = self.get_gid() { cvt(libc::setgid(u as gid_t))?; } if let Some(u) = self.get_uid() { + // When dropping privileges from root, the `setgroups` call + // will remove any extraneous groups. If we don't call this, + // then even though our uid has dropped, we may still have + // groups that enable us to do super-user things. This will + // fail if we aren't root, so don't bother checking the + // return value, this is just done as an optimistic + // privilege dropping function. //FIXME: Redox kernel does not support setgroups yet - if cfg!(not(target_os = "redox")) { - // When dropping privileges from root, the `setgroups` call - // will remove any extraneous groups. If we don't call this, - // then even though our uid has dropped, we may still have - // groups that enable us to do super-user things. This will - // fail if we aren't root, so don't bother checking the - // return value, this is just done as an optimistic - // privilege dropping function. - let _ = libc::setgroups(0, ptr::null()); - } - + #[cfg(not(target_os = "redox"))] + let _ = libc::setgroups(0, ptr::null()); cvt(libc::setuid(u as uid_t))?; } } @@ -203,7 +202,7 @@ impl Command { } // emscripten has no signal support. - #[cfg(not(any(target_os = "emscripten")))] + #[cfg(not(target_os = "emscripten"))] { use crate::mem::MaybeUninit; // Reset signal handling so the child process starts in a |
