Browse Source

BProcess: fix fd mapping

ambrop7 15 years ago
parent
commit
bfea9543b5
1 changed files with 8 additions and 6 deletions
  1. 8 6
      process/BProcess.c

+ 8 - 6
process/BProcess.c

@@ -231,14 +231,16 @@ int BProcess_InitWithFds (BProcess *o, BProcessManager *m, BProcess_handler hand
                 }
             }
             
-            // dup fd
-            if (dup2(*fds2, *fds_map) < 0) {
-                abort();
+            if (*fds2 != *fds_map) {
+                // dup fd
+                if (dup2(*fds2, *fds_map) < 0) {
+                    abort();
+                }
+                
+                // close original fd
+                close(*fds2);
             }
             
-            // close original fd
-            close(*fds2);
-            
             fds2++;
             fds_map++;
         }