From 01f8719c77d85d11ba04a16218094ced1b7d59ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Thu, 20 Feb 2020 18:46:16 +0100 Subject: [PATCH] term: spawn_new: check return value of chdir() and write() --- terminal.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/terminal.c b/terminal.c index 37b2cc84..ba19b552 100644 --- a/terminal.c +++ b/terminal.c @@ -1961,9 +1961,13 @@ term_spawn_new(const struct terminal *term) if (pid2 == 0) { /* Child */ close(pipe_fds[0]); - chdir(term->cwd); - execlp(term->foot_exe, term->foot_exe, NULL); - write(pipe_fds[1], &errno, sizeof(errno)); + if (chdir(term->cwd) < 0 || + execlp(term->foot_exe, term->foot_exe, NULL) < 0) + { + (void)!write(pipe_fds[1], &errno, sizeof(errno)); + _exit(errno); + } + assert(false); _exit(errno); }