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