BUG: Do not close stdout/stderr pipes in parent if they are shared.
This commit is contained in:
parent
3f224b7558
commit
8567e7d0bc
@ -689,7 +689,10 @@ void kwsysProcess_Execute(kwsysProcess* cp)
|
||||
}
|
||||
|
||||
/* The parent process does not need the output pipe write ends. */
|
||||
kwsysProcessCleanupDescriptor(&si.StdErr);
|
||||
if(si.StdErr != 2)
|
||||
{
|
||||
kwsysProcessCleanupDescriptor(&si.StdErr);
|
||||
}
|
||||
kwsysProcessCleanupDescriptor(&si.TermPipe);
|
||||
|
||||
/* Restore the working directory. */
|
||||
@ -1395,7 +1398,10 @@ static int kwsysProcessCreate(kwsysProcess* cp, int prIndex,
|
||||
}
|
||||
|
||||
/* The parent process does not need the output pipe write ends. */
|
||||
kwsysProcessCleanupDescriptor(&si->StdOut);
|
||||
if(si->StdOut != 1)
|
||||
{
|
||||
kwsysProcessCleanupDescriptor(&si->StdOut);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
@ -1160,7 +1160,7 @@ void kwsysProcess_Execute(kwsysProcess* cp)
|
||||
{
|
||||
kwsysProcessCleanupHandle(&si.StartupInfo.hStdOutput);
|
||||
}
|
||||
if(si.StartupInfo.hStdOutput != GetStdHandle(STD_ERROR_HANDLE))
|
||||
if(si.StartupInfo.hStdError != GetStdHandle(STD_ERROR_HANDLE))
|
||||
{
|
||||
kwsysProcessCleanupHandle(&si.StartupInfo.hStdError);
|
||||
}
|
||||
@ -1176,7 +1176,10 @@ void kwsysProcess_Execute(kwsysProcess* cp)
|
||||
|
||||
/* Close the inherited handles to the stderr pipe shared by all
|
||||
processes in the pipeline. */
|
||||
kwsysProcessCleanupHandle(&si.StartupInfo.hStdError);
|
||||
if(si.StartupInfo.hStdError != GetStdHandle(STD_ERROR_HANDLE))
|
||||
{
|
||||
kwsysProcessCleanupHandle(&si.StartupInfo.hStdError);
|
||||
}
|
||||
|
||||
/* Restore the working directory. */
|
||||
if(cp->RealWorkingDirectory)
|
||||
|
Loading…
x
Reference in New Issue
Block a user