From 384b410177caa5f5e070867f056f04553cc90bb0 Mon Sep 17 00:00:00 2001
From: Stefan Lankes <slankes@eonerc.rwth-aachen.de>
Date: Sat, 29 Apr 2023 23:37:36 +0200
Subject: [PATCH] don't leak memory if the environment is empty

---
 src/syscalls/interfaces/mod.rs | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/syscalls/interfaces/mod.rs b/src/syscalls/interfaces/mod.rs
index cac2fd18a..3bc3dbc7c 100644
--- a/src/syscalls/interfaces/mod.rs
+++ b/src/syscalls/interfaces/mod.rs
@@ -41,7 +41,12 @@ pub trait SyscallInterface: Send + Sync {
 
 		let argc = argv.len() as i32;
 		let argv = argv.leak().as_ptr();
-		let envv = envv.leak().as_ptr();
+		// do we have more than a end marker? If not, return as null pointer
+		let envv = if envv.len() == 1 {
+			core::ptr::null::<*const u8>()
+		} else {
+			envv.leak().as_ptr()
+		};
 
 		(argc, argv, envv)
 	}
-- 
GitLab