diff options
-rw-r--r-- | exec.c | 2 | ||||
-rw-r--r-- | spawn.c | 5 | ||||
-rw-r--r-- | spawn.h | 3 |
3 files changed, 8 insertions, 2 deletions
@@ -374,7 +374,7 @@ static int bfs_exec_spawn(const struct bfs_exec *execbuf) { } } - pid = bfs_spawn(execbuf->argv[0], &ctx, execbuf->argv, environ); + pid = bfs_spawn(execbuf->argv[0], &ctx, execbuf->argv, NULL); fail: error = errno; bfs_spawn_destroy(&ctx); @@ -217,6 +217,11 @@ fail: } pid_t bfs_spawn(const char *exe, const struct bfs_spawn *ctx, char **argv, char **envp) { + extern char **environ; + if (!envp) { + envp = environ; + } + // Use a pipe to report errors from the child int pipefd[2]; if (pipe_cloexec(pipefd) != 0) { @@ -100,7 +100,8 @@ int bfs_spawn_addsetrlimit(struct bfs_spawn *ctx, int resource, const struct rli * @param argv * The arguments for the new process. * @param envp - * The environment variables for the new process. + * The environment variables for the new process (NULL for the current + * environment. * @return * The PID of the new process, or -1 on error. */ |