fix: more std::env::vars -> std::env::vars_os fixes

This commit is contained in:
Michael Bolin
2025-12-08 17:36:04 -08:00
parent cacfd003ac
commit 402db13d17
10 changed files with 58 additions and 17 deletions

View File

@@ -34,12 +34,16 @@ pub(crate) async fn run(file: String, argv: Vec<String>) -> anyhow::Result<i32>
.send_with_fds(&HANDSHAKE_MESSAGE, &[server.into_inner().into()])
.await
.context("failed to send handshake datagram")?;
let env = std::env::vars()
.filter(|(k, _)| {
!matches!(
k.as_str(),
let env = std::env::vars_os()
.filter_map(|(key, value)| {
let key = key.into_string().ok()?;
if matches!(
key.as_str(),
ESCALATE_SOCKET_ENV_VAR | BASH_EXEC_WRAPPER_ENV_VAR
)
) {
return None;
}
Some((key, value.into_string().ok()?))
})
.collect();
client

View File

@@ -55,7 +55,9 @@ impl EscalateServer {
client_socket.set_cloexec(false)?;
let escalate_task = tokio::spawn(escalate_task(escalate_server, self.policy.clone()));
let mut env = std::env::vars().collect::<HashMap<String, String>>();
let mut env = std::env::vars_os()
.filter_map(|(key, value)| Some((key.into_string().ok()?, value.into_string().ok()?)))
.collect::<HashMap<String, String>>();
env.insert(
ESCALATE_SOCKET_ENV_VAR.to_string(),
client_socket.as_raw_fd().to_string(),