From c1cec3b247f022b9e3a88c6afe7d1fe8cc459a76 Mon Sep 17 00:00:00 2001 From: Christian Poveda Date: Wed, 28 Aug 2019 17:31:57 -0500 Subject: [PATCH] Exclude env vars using flag --- src/eval.rs | 2 +- src/shims/env.rs | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/eval.rs b/src/eval.rs index 463f21d30ec..e44fdfd1416 100644 --- a/src/eval.rs +++ b/src/eval.rs @@ -42,7 +42,7 @@ pub fn create_ecx<'mir, 'tcx: 'mir>( MemoryExtra::new(StdRng::seed_from_u64(config.seed.unwrap_or(0)), config.validate), ); // Complete initialization. - EnvVars::init(&mut ecx); + EnvVars::init(&mut ecx, config.excluded_env_vars); // Setup first stack-frame let main_instance = ty::Instance::mono(ecx.tcx.tcx, main_id); diff --git a/src/shims/env.rs b/src/shims/env.rs index 8f946a2b5eb..5a5dffa1d09 100644 --- a/src/shims/env.rs +++ b/src/shims/env.rs @@ -15,11 +15,14 @@ pub struct EnvVars { impl EnvVars { pub(crate) fn init<'mir, 'tcx>( ecx: &mut InterpCx<'mir, 'tcx, Evaluator<'tcx>>, + excluded_env_vars: Vec, ) { if ecx.machine.communicate { for (name, value) in std::env::vars() { - let var_ptr = alloc_env_var(name.as_bytes(), value.as_bytes(), ecx.memory_mut()); - ecx.machine.env_vars.map.insert(name.into_bytes(), var_ptr); + if !excluded_env_vars.contains(&name) { + let var_ptr = alloc_env_var(name.as_bytes(), value.as_bytes(), ecx.memory_mut()); + ecx.machine.env_vars.map.insert(name.into_bytes(), var_ptr); + } } } } -- 2.44.0