From: Jaroslav Kysela Date: Mon, 17 Nov 2014 22:26:18 +0000 (+0100) Subject: spawn: reshuffle code to get proper stdin for spawned process X-Git-Tag: v4.1~747 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fc7e0f4a362c262e960281a69543a5ecc8e2406b;p=thirdparty%2Ftvheadend.git spawn: reshuffle code to get proper stdin for spawned process --- diff --git a/src/spawn.c b/src/spawn.c index 69fcc7f52..a686ab555 100644 --- a/src/spawn.c +++ b/src/spawn.c @@ -335,12 +335,6 @@ spawn_and_give_stdout(const char *prog, char *argv[], int *rd, int redir_stderr) } if(p == 0) { - close(0); - close(2); - close(fd[0]); - dup2(fd[1], 1); - close(fd[1]); - f = open("/dev/null", O_RDWR); if(f == -1) { spawn_error("pid %d cannot open /dev/null for redirect %s -- %s", @@ -348,6 +342,11 @@ spawn_and_give_stdout(const char *prog, char *argv[], int *rd, int redir_stderr) exit(1); } + close(0); + close(2); + close(fd[0]); + dup2(fd[1], 1); + close(fd[1]); dup2(f, 0); dup2(redir_stderr ? spawn_pipe_error.wr : f, 2); close(f);