Exclude env vars using flag

This commit is contained in:
Christian Poveda 2019-08-28 17:31:57 -05:00
parent 1ae1d71938
commit c1cec3b247
2 changed files with 6 additions and 3 deletions

View File

@ -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);

View File

@ -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<String>,
) {
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);
}
}
}
}