all: mark env::set_var/remove_var unsafe
This commit is contained in:
parent
73a6e0d5c2
commit
a0984a1205
2 changed files with 18 additions and 10 deletions
|
|
@ -20,7 +20,9 @@ pub fn main(global: GlobalArgs, args: RunPrivilegedArgs) {
|
||||||
let mut path = PathBuf::from(xrd);
|
let mut path = PathBuf::from(xrd);
|
||||||
path.push(&wd);
|
path.push(&wd);
|
||||||
if path.exists() {
|
if path.exists() {
|
||||||
std::env::set_var(WAYLAND_DISPLAY, &wd);
|
unsafe {
|
||||||
|
std::env::set_var(WAYLAND_DISPLAY, &wd);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let mut argv = UstrPtr::new();
|
let mut argv = UstrPtr::new();
|
||||||
|
|
|
||||||
|
|
@ -332,9 +332,11 @@ struct Forker {
|
||||||
|
|
||||||
impl Forker {
|
impl Forker {
|
||||||
fn handle(ppid: c::pid_t, socket: OwnedFd) -> ! {
|
fn handle(ppid: c::pid_t, socket: OwnedFd) -> ! {
|
||||||
env::set_var("XDG_SESSION_TYPE", "wayland");
|
unsafe {
|
||||||
env::remove_var(DISPLAY);
|
env::set_var("XDG_SESSION_TYPE", "wayland");
|
||||||
env::remove_var(WAYLAND_DISPLAY);
|
env::remove_var(DISPLAY);
|
||||||
|
env::remove_var(WAYLAND_DISPLAY);
|
||||||
|
}
|
||||||
set_process_name("the ol' forker");
|
set_process_name("the ol' forker");
|
||||||
setup_deathsig(ppid);
|
setup_deathsig(ppid);
|
||||||
reset_signals();
|
reset_signals();
|
||||||
|
|
@ -409,9 +411,11 @@ impl Forker {
|
||||||
|
|
||||||
fn handle_set_env(self: &Rc<Self>, var: &[u8], val: Option<Vec<u8>>) {
|
fn handle_set_env(self: &Rc<Self>, var: &[u8], val: Option<Vec<u8>>) {
|
||||||
let var = OsStr::from_bytes(var);
|
let var = OsStr::from_bytes(var);
|
||||||
match val {
|
unsafe {
|
||||||
Some(val) => env::set_var(var, OsStr::from_bytes(&val)),
|
match val {
|
||||||
_ => env::remove_var(var),
|
Some(val) => env::set_var(var, OsStr::from_bytes(&val)),
|
||||||
|
_ => env::remove_var(var),
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -513,9 +517,11 @@ impl Forker {
|
||||||
c::signal(c::SIGCHLD, c::SIG_DFL);
|
c::signal(c::SIGCHLD, c::SIG_DFL);
|
||||||
}
|
}
|
||||||
for (key, val) in env {
|
for (key, val) in env {
|
||||||
match val {
|
unsafe {
|
||||||
None => env::remove_var(&key),
|
match val {
|
||||||
Some(val) => env::set_var(&key, &val),
|
None => env::remove_var(&key),
|
||||||
|
Some(val) => env::set_var(&key, &val),
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let prog = prog.into_ustr();
|
let prog = prog.into_ustr();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue