Skip to content

Commit 0aab866

Browse files
authored
bpo-33929: Fix regression in spawn_main() (#7962)
OpenProcess() creates a new handle that must be closed later.
1 parent 2cc9d21 commit 0aab866

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

Lib/multiprocessing/spawn.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,12 @@ def spawn_main(pipe_handle, parent_pid=None, tracker_fd=None):
103103
_winapi.PROCESS_DUP_HANDLE, False, parent_pid)
104104
else:
105105
source_process = None
106-
new_handle = reduction.duplicate(pipe_handle,
107-
source_process=source_process)
106+
try:
107+
new_handle = reduction.duplicate(pipe_handle,
108+
source_process=source_process)
109+
finally:
110+
if source_process is not None:
111+
_winapi.CloseHandle(source_process)
108112
fd = msvcrt.open_osfhandle(new_handle, os.O_RDONLY)
109113
else:
110114
from . import semaphore_tracker

0 commit comments

Comments
 (0)