From 128209788c70dea70d8b2e588e989b24548455d9 Mon Sep 17 00:00:00 2001 From: jD91mZM2 <me@krake.one> Date: Mon, 13 Aug 2018 14:46:17 +0200 Subject: [PATCH] Finish up fexec migration --- src/crt0/src/lib.rs | 4 +++- src/platform/src/redox/mod.rs | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/crt0/src/lib.rs b/src/crt0/src/lib.rs index ceb003f96..e790ec60d 100644 --- a/src/crt0/src/lib.rs +++ b/src/crt0/src/lib.rs @@ -98,7 +98,9 @@ pub unsafe extern "C" fn _start_rust(sp: &'static Stack) -> ! { platform::exit(main( argc, argv, - envp + // not envp, because programs like bash try to modify this *const* + // pointer :| + platform::environ as *const *const c_char )); } diff --git a/src/platform/src/redox/mod.rs b/src/platform/src/redox/mod.rs index 19c02b306..1f4b996ac 100644 --- a/src/platform/src/redox/mod.rs +++ b/src/platform/src/redox/mod.rs @@ -219,7 +219,7 @@ pub unsafe extern "C" fn execve( while *arg.offset(len) != 0 { len += 1; } - args.push([*arg as usize, len as usize]); + args.push([arg as usize, len as usize]); argv = argv.offset(1); } @@ -236,7 +236,7 @@ pub unsafe extern "C" fn execve( while *env.offset(len) != 0 { len += 1; } - envs.push([*env as usize, len as usize]); + envs.push([env as usize, len as usize]); envp = envp.offset(1); } -- GitLab