Commit ae26c248 authored by Brad King's avatar Brad King
Browse files

BUG: Do not leak global table of processes.

parent f1a9a346
...@@ -2213,9 +2213,6 @@ static void kwsysProcessesRemove(kwsysProcess* cp) ...@@ -2213,9 +2213,6 @@ static void kwsysProcessesRemove(kwsysProcess* cp)
newProcesses.Processes[i] = newProcesses.Processes[i+1]; newProcesses.Processes[i] = newProcesses.Processes[i+1];
} }
/* Store the new set in that seen by the signal handler. */
kwsysProcessesUpdate(&newProcesses);
/* If this was the last process, disable the signal handler. */ /* If this was the last process, disable the signal handler. */
if(newProcesses.Count == 0) if(newProcesses.Count == 0)
{ {
...@@ -2223,7 +2220,16 @@ static void kwsysProcessesRemove(kwsysProcess* cp) ...@@ -2223,7 +2220,16 @@ static void kwsysProcessesRemove(kwsysProcess* cp)
interrupted. */ interrupted. */
while((sigaction(SIGCHLD, &kwsysProcessesOldSigChldAction, 0) < 0) && while((sigaction(SIGCHLD, &kwsysProcessesOldSigChldAction, 0) < 0) &&
(errno == EINTR)); (errno == EINTR));
/* Free the table of process pointers since it is now empty.
This is safe because the signal handler has been removed. */
newProcesses.Size = 0;
free(newProcesses.Processes);
newProcesses.Processes = 0;
} }
/* Store the new set in that seen by the signal handler. */
kwsysProcessesUpdate(&newProcesses);
} }
} }
......
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