From 1718d28d393d9aa289dcd54a401656d32ab6b7de Mon Sep 17 00:00:00 2001 From: Jeremy Soller <jackpot51@gmail.com> Date: Sun, 12 Aug 2018 08:30:12 -0600 Subject: [PATCH] Push null pointer to indicate end of environment --- src/syscall/process.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/syscall/process.rs b/src/syscall/process.rs index 0f8878f..32af87a 100644 --- a/src/syscall/process.rs +++ b/src/syscall/process.rs @@ -675,6 +675,10 @@ fn fexec_noreturn( context.tls = Some(tls); } + // Push end of variables + sp -= mem::size_of::<usize>(); + unsafe { *(sp as *mut usize) = 0; } + // Push arguments and variables let mut arg_size = 0; for arg in vars.iter().rev().chain(args.iter().rev()) { @@ -684,6 +688,7 @@ fn fexec_noreturn( arg_size += arg.len() + 1; } + // Push arguments length sp -= mem::size_of::<usize>(); unsafe { *(sp as *mut usize) = args.len(); } -- GitLab