summaryrefslogtreecommitdiffstats
path: root/job.c
diff options
context:
space:
mode:
authorThomas Adam <thomas@xteddy.org>2015-10-28 12:01:11 +0000
committerThomas Adam <thomas@xteddy.org>2015-10-28 12:01:11 +0000
commita5e4d3a2d8c2fb288488ee5922a561a4a9e6803a (patch)
treeebfcd8a38514651c4657dac40601a5aafa360b89 /job.c
parentda1f6fc2c8477c99e986061bcdd7c3e854a60076 (diff)
parentbf9c933caed5c74be3c9c4da02d7c57a9dcf091d (diff)
Merge branch 'obsd-master'
Diffstat (limited to 'job.c')
-rw-r--r--job.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/job.c b/job.c
index dc11c4c8..47274db1 100644
--- a/job.c
+++ b/job.c
@@ -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);