From b21b1ee9af4868fb1625df3d74f68976b6434bec Mon Sep 17 00:00:00 2001 From: nicm Date: Mon, 8 Sep 2025 11:21:56 +0000 Subject: [PATCH] Don't try to change directory if it is NULL. --- job.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/job.c b/job.c index ceac8d27..5ad179ff 100644 --- a/job.c +++ b/job.c @@ -52,7 +52,7 @@ struct job { char *cmd; pid_t pid; - char tty[TTY_NAME_MAX]; + char tty[TTY_NAME_MAX]; int status; int fd; @@ -141,14 +141,16 @@ job_run(const char *cmd, int argc, char **argv, struct environ *e, proc_clear_signals(server_proc, 1); sigprocmask(SIG_SETMASK, &oldset, NULL); - if (chdir(cwd) == 0) - environ_set(env, "PWD", 0, "%s", cwd); - else if ((home = find_home()) != NULL && chdir(home) == 0) - environ_set(env, "PWD", 0, "%s", home); - else if (chdir("/") == 0) - environ_set(env, "PWD", 0, "/"); - else - fatal("chdir failed"); + if (cwd != NULL) { + if (chdir(cwd) == 0) + environ_set(env, "PWD", 0, "%s", cwd); + else if ((home = find_home()) != NULL && chdir(home) == 0) + environ_set(env, "PWD", 0, "%s", home); + else if (chdir("/") == 0) + environ_set(env, "PWD", 0, "/"); + else + fatal("chdir failed"); + } environ_push(env); environ_free(env);