zos: use execvpe() to set environ explictly
On z/OS, `execvp()` does not set the environment for child process from `environ` when ran in ASCII mode. Instead, `execvpe()` provided by ZOSLIB must be used to set the environment explicitly. PR-URL: https://github.com/libuv/libuv/pull/3060 Reviewed-By: Richard Lau <rlau@redhat.com>
This commit is contained in:
parent
880cdc38b8
commit
f6adf960ce
@ -44,6 +44,10 @@ extern char **environ;
|
||||
# include <grp.h>
|
||||
#endif
|
||||
|
||||
#if defined(__MVS__)
|
||||
# include "zos-base.h"
|
||||
#endif
|
||||
|
||||
|
||||
static void uv__chld(uv_signal_t* handle, int signum) {
|
||||
uv_process_t* process;
|
||||
@ -336,7 +340,11 @@ static void uv__process_child_init(const uv_process_options_t* options,
|
||||
_exit(127);
|
||||
}
|
||||
|
||||
#ifdef __MVS__
|
||||
execvpe(options->file, options->args, environ);
|
||||
#else
|
||||
execvp(options->file, options->args);
|
||||
#endif
|
||||
uv__write_int(error_fd, UV__ERR(errno));
|
||||
_exit(127);
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user