]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
spawn: reshuffle code to get proper stdin for spawned process
authorJaroslav Kysela <perex@perex.cz>
Mon, 17 Nov 2014 22:26:18 +0000 (23:26 +0100)
committerJaroslav Kysela <perex@perex.cz>
Mon, 17 Nov 2014 22:26:18 +0000 (23:26 +0100)
src/spawn.c

index 69fcc7f52c70f103ff8c3bf2fddfe91c32415012..a686ab5552d64de8e74deedda5ac8660e0b33795 100644 (file)
@@ -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);