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