diff options
author | Thomas Adam <thomas@xteddy.org> | 2015-10-28 12:01:11 +0000 |
---|---|---|
committer | Thomas Adam <thomas@xteddy.org> | 2015-10-28 12:01:11 +0000 |
commit | a5e4d3a2d8c2fb288488ee5922a561a4a9e6803a (patch) | |
tree | ebfcd8a38514651c4657dac40601a5aafa360b89 /job.c | |
parent | da1f6fc2c8477c99e986061bcdd7c3e854a60076 (diff) | |
parent | bf9c933caed5c74be3c9c4da02d7c57a9dcf091d (diff) |
Merge branch 'obsd-master'
Diffstat (limited to 'job.c')
-rw-r--r-- | job.c | 18 |
1 files changed, 9 insertions, 9 deletions
@@ -44,22 +44,22 @@ job_run(const char *cmd, struct session *s, int cwd, void (*callbackfn)(struct job *), void (*freefn)(void *), void *data) { struct job *job; - struct environ env; + struct environ *env; pid_t pid; int nullfd, out[2]; if (socketpair(AF_UNIX, SOCK_STREAM, PF_UNSPEC, out) != 0) return (NULL); - environ_init(&env); - environ_copy(&global_environ, &env); + env = environ_create(); + environ_copy(global_environ, env); if (s != NULL) - environ_copy(&s->environ, &env); - server_fill_environ(s, &env); + environ_copy(s->environ, env); + server_fill_environ(s, env); switch (pid = fork()) { case -1: - environ_free(&env); + environ_free(env); close(out[0]); close(out[1]); return (NULL); @@ -69,8 +69,8 @@ job_run(const char *cmd, struct session *s, int cwd, if (cwd != -1 && fchdir(cwd) != 0) chdir("/"); - environ_push(&env); - environ_free(&env); + environ_push(env); + environ_free(env); if (dup2(out[1], STDIN_FILENO) == -1) fatal("dup2 failed"); @@ -95,7 +95,7 @@ job_run(const char *cmd, struct session *s, int cwd, } /* parent */ - environ_free(&env); + environ_free(env); close(out[1]); job = xmalloc(sizeof *job); |