From: Evan Cheng Date: Fri, 9 Jun 2006 20:43:11 +0000 (+0000) Subject: Don't pull in environ, not always safe. Global variables are bad anyway. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=2fafaf1b01bbcb8a5db2f6ded07fb840115ca5d9;p=oota-llvm.git 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 --- 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);