From 2fafaf1b01bbcb8a5db2f6ded07fb840115ca5d9 Mon Sep 17 00:00:00 2001 From: Evan Cheng Date: Fri, 9 Jun 2006 20:43:11 +0000 Subject: [PATCH] Don't pull in environ, not always safe. Global variables are bad anyway. Use execve when explicit environment variables ptr is available. Otherwise just use execv. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28740 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/System/Unix/Program.inc | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/lib/System/Unix/Program.inc b/lib/System/Unix/Program.inc index 01eefe0d52e..86a54316179 100644 --- a/lib/System/Unix/Program.inc +++ b/lib/System/Unix/Program.inc @@ -29,8 +29,6 @@ #include #endif -extern char** environ; - namespace llvm { using namespace sys; @@ -147,13 +145,11 @@ Program::ExecuteAndWait(const Path& path, } } - // Set up the environment - char** env = environ; - if (envp != 0) - env = (char**) envp; - // Execute! - execve (path.c_str(), (char** const)args, env); + if (envp != 0) + execve (path.c_str(), (char** const)args, (char**)envp); + else + execv (path.c_str(), (char** const)args); // If the execve() failed, we should exit and let the parent pick up // our non-zero exit status. exit (errno); -- 2.34.1