From 6224f4437c2c1d3b92dedb334eaf73f4aa7d2285 Mon Sep 17 00:00:00 2001 From: baldurk Date: Tue, 2 Aug 2016 14:58:35 +0200 Subject: [PATCH] Use execvp so that the PATH variable is checked for programs --- renderdoc/os/posix/posix_process.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/renderdoc/os/posix/posix_process.cpp b/renderdoc/os/posix/posix_process.cpp index 4c5f7de20..10f0452ed 100644 --- a/renderdoc/os/posix/posix_process.cpp +++ b/renderdoc/os/posix/posix_process.cpp @@ -172,8 +172,7 @@ void Process::ApplyEnvironmentModification() modifications.clear(); } -static pid_t RunProcess(const char *app, const char *workingDir, const char *cmdLine, - char *const *envp) +static pid_t RunProcess(const char *app, const char *workingDir, const char *cmdLine, char **envp) { if(!app) return (pid_t)0; @@ -307,7 +306,10 @@ static pid_t RunProcess(const char *app, const char *workingDir, const char *cmd { chdir(workDir.c_str()); - execve(appName.c_str(), argv, envp); + // in child process, so we can change environment + environ = envp; + execvp(appName.c_str(), argv); + RDCERR("Failed to execute %s: %s", appName.c_str(), strerror(errno)); exit(0); }