[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[tor-commits] [tor/master] Remember to close the child process' ends of the pipes.



commit 1d8dcb416c989ad86a1e3ae2aa92f4c2c1339183
Author: Alexander Færøy <ahf@xxxxxxxxxxxxxx>
Date:   Thu Dec 20 12:47:04 2018 +0100

    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
---
 src/lib/process/process_win32.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/lib/process/process_win32.c b/src/lib/process/process_win32.c
index c92b0975a..a09664b50 100644
--- a/src/lib/process/process_win32.c
+++ b/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.
    *



_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits