~ruther/dwl

ebfefa84bad5a930df4df85b150c27f1d4fe6de6 — Humm 3 years ago 2d9740c
-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).
1 files changed, 2 insertions(+), 0 deletions(-)

M dwl.c
M dwl.c => dwl.c +2 -0
@@ 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 */

Do not follow this link