浏览代码

Remember to close the child process' ends of the pipes.

This prevents us from leaking the HANDLE for stdout, stderr, and stdin.

See: https://bugs.torproject.org/28179
Alexander Færøy 6 年之前
父节点
当前提交
1d8dcb416c
共有 1 个文件被更改,包括 5 次插入0 次删除
  1. 5 0
      src/lib/process/process_win32.c

+ 5 - 0
src/lib/process/process_win32.c

@@ -248,6 +248,11 @@ process_win32_exec(process_t *process)
   win32_process->stderr_handle.pipe = stderr_pipe_read;
   win32_process->stdin_handle.pipe = stdin_pipe_write;
 
+  /* Close our ends of the pipes that is now owned by the child process. */
+  CloseHandle(stdout_pipe_write);
+  CloseHandle(stderr_pipe_write);
+  CloseHandle(stdin_pipe_read);
+
   /* Used by the callback functions from ReadFileEx() and WriteFileEx() such
    * that we can figure out which process_t that was responsible for the event.
    *