+ int orig_out, orig_in, orig_err;
+ BOOL separate_stderr = !(flags & PEX_STDERR_TO_STDOUT);
+
+ /* Ensure we have inheritable descriptors to pass to the child, and close the
+ original descriptors. */
+ orig_in = in;
+ in = _dup (orig_in);
+ if (orig_in != STDIN_FILENO)
+ _close (orig_in);
+
+ orig_out = out;
+ out = _dup (orig_out);
+ if (orig_out != STDOUT_FILENO)
+ _close (orig_out);
+
+ if (separate_stderr)
+ {
+ orig_err = errdes;
+ errdes = _dup (orig_err);
+ if (orig_err != STDERR_FILENO)
+ _close (orig_err);
+ }