Staging
v0.5.1
https://github.com/python/cpython
Revision b90c68586e1f2c45c736dd38880f182be267e2ef authored by Miss Islington (bot) on 06 February 2018, 06:51:10 UTC, committed by Gregory P. Smith on 06 February 2018, 06:51:10 UTC
Fix a rare but potential pre-exec child process deadlock in subprocess on POSIX systems when marking file descriptors inheritable on exec in the child process.  This bug appears to have been introduced in 3.4 with the inheritable file descriptors support.

This also changes Python/fileutils.c `set_inheritable` to use the "slow" two `fcntl` syscall path instead of the "fast" single `ioctl` syscall path when asked to be async signal safe (by way of being asked not to raise exceptions).  `ioctl` is not a POSIX async-signal-safe approved function.

ref: http://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html
(cherry picked from commit c1e46e94de38a92f98736af9a42d89c3975a9919)

Co-authored-by: Alexey Izbyshev <izbyshev@users.noreply.github.com>
1 parent 7bd5a75
History
Tip revision: b90c68586e1f2c45c736dd38880f182be267e2ef authored by Miss Islington (bot) on 06 February 2018, 06:51:10 UTC
bpo-32777: Fix _Py_set_inheritable async-safety in subprocess (GH-5560) (GH-5563)
Tip revision: b90c685
File Mode Size
bdist_wininst
clinic
external
icons
WinMain.c -rw-r--r-- 449 bytes
_findvs.cpp -rw-r--r-- 6.5 KB
_msi.c -rw-r--r-- 32.2 KB
_testconsole.c -rw-r--r-- 3.3 KB
config.c -rw-r--r-- 5.2 KB
dl_nt.c -rw-r--r-- 4.6 KB
dllbase_nt.txt -rw-r--r-- 3.5 KB
empty.c -rw-r--r-- 137 bytes
errmap.h -rw-r--r-- 2.1 KB
errmap.mak -rw-r--r-- 95 bytes
frozen_dllmain.c -rw-r--r-- 3.9 KB
generrmap.c -rw-r--r-- 849 bytes
getpathp.c -rw-r--r-- 30.0 KB
invalid_parameter_handler.c -rw-r--r-- 549 bytes
launcher.c -rw-r--r-- 50.1 KB
msvcrtmodule.c -rw-r--r-- 14.8 KB
pyconfig.h -rw-r--r-- 19.3 KB
pylauncher.rc -rw-r--r-- 1.4 KB
pyshellext.cpp -rw-r--r-- 18.1 KB
pyshellext.def -rw-r--r-- 141 bytes
pyshellext.idl -rw-r--r-- 277 bytes
pyshellext.rc -rw-r--r-- 1.1 KB
pyshellext_d.def -rw-r--r-- 143 bytes
python.manifest -rw-r--r-- 1.3 KB
python3.def -rw-r--r-- 40.0 KB
python3dll.c -rw-r--r-- 134 bytes
python_exe.rc -rw-r--r-- 1.2 KB
python_nt.rc -rw-r--r-- 1.2 KB
python_ver_rc.h -rw-r--r-- 970 bytes
pythonw_exe.rc -rw-r--r-- 1.2 KB
readme.txt -rw-r--r-- 3.5 KB
sqlite3.rc -rw-r--r-- 1.3 KB
testpy.py -rw-r--r-- 831 bytes
validate_ucrtbase.py -rw-r--r-- 2.7 KB
winreg.c -rw-r--r-- 59.7 KB
winsound.c -rw-r--r-- 6.5 KB

readme.txt

back to top