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