diff options
author | Humm <hummsmith42@gmail.com> | 2021-10-13 23:11:40 +0200 |
---|---|---|
committer | Humm <hummsmith42@gmail.com> | 2021-10-13 23:11:40 +0200 |
commit | ebfefa84bad5a930df4df85b150c27f1d4fe6de6 (patch) | |
tree | b54edad31ce099d834d25da409592fcd416be530 | |
parent | 2d9740c2fc481d42eb0deace797553172cc234d9 (diff) |
-s: close unused fds
dup2 doesn’t close fds, it only duplicates them. The old ones weren’t
closed, causing problems (like dwl blocking due to the child process
never reading from the reading end, even if stdin has been closed).
-rw-r--r-- | dwl.c | 2 |
1 files changed, 2 insertions, 0 deletions
@@ -1823,11 +1823,13 @@ run(char *startup_cmd) EBARF("startup: fork"); if (startup_pid == 0) { dup2(piperw[0], STDIN_FILENO); + close(piperw[0]); close(piperw[1]); execl("/bin/sh", "/bin/sh", "-c", startup_cmd, NULL); EBARF("startup: execl"); } dup2(piperw[1], STDOUT_FILENO); + close(piperw[1]); close(piperw[0]); } /* If nobody is reading the status output, don't terminate */ |