From f1b1ac39f6ac5fc9b7ca59ff559bc588c852c89f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Thu, 20 Feb 2020 18:46:35 +0100 Subject: [PATCH] slave: check return value of chdir() --- slave.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/slave.c b/slave.c index 3bff59b7..2703c784 100644 --- a/slave.c +++ b/slave.c @@ -103,7 +103,12 @@ slave_spawn(int ptmx, int argc, const char *cwd, char *const *argv, /* Child */ close(fork_pipe[0]); /* Close read end */ - chdir(cwd); + if (chdir(cwd) < 0) { + const int _errno = errno; + LOG_ERRNO("failed to change working directory"); + (void)!write(fork_pipe[1], &_errno, sizeof(_errno)); + _exit(_errno); + } /* Restore signals */ const struct sigaction sa = {.sa_handler = SIG_DFL};