diff options
-rw-r--r-- | Source/kwsys/ProcessUNIX.c | 10 | ||||
-rw-r--r-- | Source/kwsys/ProcessWin32.c | 7 |
2 files changed, 13 insertions, 4 deletions
diff --git a/Source/kwsys/ProcessUNIX.c b/Source/kwsys/ProcessUNIX.c index 31e34ed..262d2df 100644 --- a/Source/kwsys/ProcessUNIX.c +++ b/Source/kwsys/ProcessUNIX.c @@ -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; } diff --git a/Source/kwsys/ProcessWin32.c b/Source/kwsys/ProcessWin32.c index 730448a..922da17 100644 --- a/Source/kwsys/ProcessWin32.c +++ b/Source/kwsys/ProcessWin32.c @@ -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) |