summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Source/kwsys/ProcessUNIX.c10
-rw-r--r--Source/kwsys/ProcessWin32.c7
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)