Commit 965cc3c3 by Julian Brown Committed by Julian Brown

pex-win32.c (pex_win32_exec_child): Fix logic to avoid closing standard handles…

pex-win32.c (pex_win32_exec_child): Fix logic to avoid closing standard handles (stdin, stdout, stderr) in parent.

	libiberty/
	* pex-win32.c (pex_win32_exec_child): Fix logic to avoid closing
	standard handles (stdin, stdout, stderr) in parent.

From-SVN: r147634
parent 2f8cce28
2009-05-17 Julian Brown <julian@codesourcery.com>
* pex-win32.c (pex_win32_exec_child): Fix logic to avoid closing
standard handles (stdin, stdout, stderr) in parent.
2009-04-29 Julian Brown <julian@codesourcery.com>
* pex-win32.c (pex_win32_pipe): Add _O_NOINHERIT.
......
......@@ -753,17 +753,20 @@ pex_win32_exec_child (struct pex_obj *obj ATTRIBUTE_UNUSED, int flags,
original descriptors. */
orig_in = in;
in = _dup (orig_in);
_close (orig_in);
if (orig_in != STDIN_FILENO)
_close (orig_in);
orig_out = out;
out = _dup (orig_out);
_close (orig_out);
if (orig_out != STDOUT_FILENO)
_close (orig_out);
if (separate_stderr)
{
orig_err = errdes;
errdes = _dup (orig_err);
_close (orig_err);
if (orig_err != STDERR_FILENO)
_close (orig_err);
}
stdin_handle = INVALID_HANDLE_VALUE;
......@@ -844,11 +847,9 @@ pex_win32_exec_child (struct pex_obj *obj ATTRIBUTE_UNUSED, int flags,
/* Close the standard input, standard output and standard error handles
in the parent. */
if (in != STDIN_FILENO)
_close (in);
if (out != STDOUT_FILENO)
_close (out);
if (errdes != STDERR_FILENO)
_close (in);
_close (out);
if (separate_stderr)
_close (errdes);
return pid;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment