From fe90664e33f7077bc8c47d7a267fe14547bba105 Mon Sep 17 00:00:00 2001
From: Jeremy Soller <jackpot51@gmail.com>
Date: Sat, 11 Aug 2018 11:18:45 -0600
Subject: [PATCH] Copy variables to USER_ARG_OFFSET

---
 src/syscall/process.rs | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/syscall/process.rs b/src/syscall/process.rs
index 8b012aaa..4e709fb6 100644
--- a/src/syscall/process.rs
+++ b/src/syscall/process.rs
@@ -688,9 +688,9 @@ fn exec_noreturn(
                 context.tls = Some(tls);
             }
 
-            // Push arguments
+            // Push arguments and variables
             let mut arg_size = 0;
-            for arg in args.iter().rev() {
+            for arg in vars.iter().rev().chain(args.iter().rev()) {
                 sp -= mem::size_of::<usize>();
                 unsafe { *(sp as *mut usize) = ::USER_ARG_OFFSET + arg_size; }
 
@@ -709,7 +709,7 @@ fn exec_noreturn(
                 );
 
                 let mut arg_offset = 0;
-                for arg in args.iter().rev() {
+                for arg in vars.iter().rev().chain(args.iter().rev()) {
                     unsafe {
                         intrinsics::copy(arg.as_ptr(),
                                (::USER_ARG_OFFSET + arg_offset) as *mut u8,
-- 
GitLab