Don't push interpreter as argv[0]

This commit is contained in:
jD91mZM2
2020-07-20 11:09:56 +02:00
parent ff5354b5b5
commit 07baf70c7a
2 changed files with 3 additions and 3 deletions

View File

@@ -169,7 +169,7 @@ pub fn syscall(a: usize, b: usize, c: usize, d: usize, e: usize, f: usize, bp: u
let context = context_lock.read();
let name_raw = context.name.lock();
let name = unsafe { core::str::from_utf8_unchecked(&name_raw) };
if name == "file:/lib/ld64.so.1" || name == "file:/home/user/test" {
if name == "file:/lib/ld64.so.1" || name == "file:/bin/ld" {
true
} else {
false

View File

@@ -1043,13 +1043,13 @@ pub fn fexec_kernel(fd: FileHandle, args: Box<[Box<[u8]>]>, vars: Box<[Box<[u8]>
let interp_fd = super::fs::open(&interp, super::flag::O_RDONLY | super::flag::O_CLOEXEC)?;
let mut args_vec = Vec::from(args);
args_vec.insert(0, interp.into_boxed_slice());
//TODO: pass file handle in auxv
let name_override = name.into_boxed_slice();
args_vec[1] = name_override.clone();
args_vec[0] = name_override.clone();
// Drop variables, since fexec_kernel probably won't return
drop(elf);
drop(interp);
return fexec_kernel(
interp_fd,