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);
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);
+ }
}
}
}