Don't try to change directory if it is NULL.

This commit is contained in:
nicm
2025-09-08 11:21:56 +00:00
parent c62fe6dac8
commit b21b1ee9af

20
job.c
View File

@@ -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);