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
Python-ast.h -rw-r--r-- 21.8 KB
Python.h -rw-r--r-- 2.9 KB
abstract.h -rw-r--r-- 46.3 KB
accu.h -rw-r--r-- 1016 bytes
asdl.h -rw-r--r-- 1.2 KB
ast.h -rw-r--r-- 477 bytes
bitset.h -rw-r--r-- 792 bytes
bltinmodule.h -rw-r--r-- 264 bytes
boolobject.h -rw-r--r-- 886 bytes
bytearrayobject.h -rw-r--r-- 2.1 KB
bytes_methods.h -rw-r--r-- 3.1 KB
bytesobject.h -rw-r--r-- 8.2 KB
cellobject.h -rw-r--r-- 701 bytes
ceval.h -rw-r--r-- 8.2 KB
classobject.h -rw-r--r-- 1.6 KB
code.h -rw-r--r-- 5.8 KB
codecs.h -rw-r--r-- 6.6 KB
compile.h -rw-r--r-- 2.1 KB
complexobject.h -rw-r--r-- 1.8 KB
datetime.h -rw-r--r-- 9.2 KB
descrobject.h -rw-r--r-- 2.9 KB
dictobject.h -rw-r--r-- 7.0 KB
dtoa.h -rw-r--r-- 458 bytes
dynamic_annotations.h -rw-r--r-- 21.9 KB
enumobject.h -rw-r--r-- 253 bytes
errcode.h -rw-r--r-- 1.5 KB
eval.h -rw-r--r-- 597 bytes
fileobject.h -rw-r--r-- 1.6 KB
fileutils.h -rw-r--r-- 2.9 KB
floatobject.h -rw-r--r-- 4.7 KB
frameobject.h -rw-r--r-- 3.4 KB
funcobject.h -rw-r--r-- 4.0 KB
genobject.h -rw-r--r-- 3.5 KB
graminit.h -rw-r--r-- 1.9 KB
grammar.h -rw-r--r-- 2.0 KB
import.h -rw-r--r-- 4.1 KB
intrcheck.h -rw-r--r-- 513 bytes
iterobject.h -rw-r--r-- 567 bytes
listobject.h -rw-r--r-- 2.8 KB
longintrepr.h -rw-r--r-- 3.7 KB
longobject.h -rw-r--r-- 8.3 KB
marshal.h -rw-r--r-- 803 bytes
memoryobject.h -rw-r--r-- 2.7 KB
metagrammar.h -rw-r--r-- 253 bytes
methodobject.h -rw-r--r-- 3.8 KB
modsupport.h -rw-r--r-- 7.1 KB
moduleobject.h -rw-r--r-- 2.2 KB
namespaceobject.h -rw-r--r-- 349 bytes
node.h -rw-r--r-- 1007 bytes
object.h -rw-r--r-- 39.4 KB
objimpl.h -rw-r--r-- 13.9 KB
odictobject.h -rw-r--r-- 1.3 KB
opcode.h -rw-r--r-- 5.0 KB
osdefs.h -rw-r--r-- 691 bytes
osmodule.h -rw-r--r-- 291 bytes
parsetok.h -rw-r--r-- 2.8 KB
patchlevel.h -rw-r--r-- 1.1 KB
pgen.h -rw-r--r-- 253 bytes
pgenheaders.h -rw-r--r-- 1.2 KB
py_curses.h -rw-r--r-- 4.2 KB
pyarena.h -rw-r--r-- 2.7 KB
pyatomic.h -rw-r--r-- 7.9 KB
pycapsule.h -rw-r--r-- 1.7 KB
pyctype.h -rw-r--r-- 1.3 KB
pydebug.h -rw-r--r-- 1.2 KB
pydtrace.d -rw-r--r-- 863 bytes
pydtrace.h -rw-r--r-- 1.9 KB
pyerrors.h -rw-r--r-- 16.8 KB
pyexpat.h -rw-r--r-- 2.3 KB
pyfpe.h -rw-r--r-- 8.3 KB
pygetopt.h -rw-r--r-- 410 bytes
pyhash.h -rw-r--r-- 4.0 KB
pylifecycle.h -rw-r--r-- 3.9 KB
pymacconfig.h -rw-r--r-- 2.9 KB
pymacro.h -rw-r--r-- 3.4 KB
pymath.h -rw-r--r-- 8.1 KB
pymem.h -rw-r--r-- 8.3 KB
pyport.h -rw-r--r-- 26.9 KB
pystate.h -rw-r--r-- 10.9 KB
pystrcmp.h -rw-r--r-- 436 bytes
pystrhex.h -rw-r--r-- 495 bytes
pystrtod.h -rw-r--r-- 1.4 KB
pythonrun.h -rw-r--r-- 6.6 KB
pythread.h -rw-r--r-- 2.9 KB
pytime.h -rw-r--r-- 7.4 KB
rangeobject.h -rw-r--r-- 629 bytes
setobject.h -rw-r--r-- 3.3 KB
sliceobject.h -rw-r--r-- 2.4 KB
structmember.h -rw-r--r-- 2.0 KB
structseq.h -rw-r--r-- 1.3 KB
symtable.h -rw-r--r-- 4.9 KB
sysmodule.h -rw-r--r-- 1.3 KB
token.h -rw-r--r-- 1.9 KB
traceback.h -rw-r--r-- 3.6 KB
tupleobject.h -rw-r--r-- 2.4 KB
typeslots.h -rw-r--r-- 2.2 KB
ucnhash.h -rw-r--r-- 1.0 KB
unicodeobject.h -rw-r--r-- 79.9 KB
warnings.h -rw-r--r-- 1.7 KB
weakrefobject.h -rw-r--r-- 2.8 KB

back to top