cpython/Python
Miss Islington (bot) 2bb0bfafb0 bpo-32777: Fix _Py_set_inheritable async-safety in subprocess (GH-5560) (GH-5562)
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 c1e46e94de)

Co-authored-by: Alexey Izbyshev <izbyshev@users.noreply.github.com>
2018-02-05 22:31:22 -08:00
..
clinic bpo-32436: Implement PEP 567 (#5027) 2018-01-22 19:11:18 -05:00
Python-ast.c bpo-32571: Avoid raising unneeded AttributeError and silencing it in C code (GH-5222) 2018-01-25 17:49:40 +09:00
README Issue #18093: Factor out the programs that embed the runtime 2014-07-25 21:52:14 +10:00
_warnings.c bpo-32591: fix abort in _PyErr_WarnUnawaitedCoroutine during shutdown (#5337) 2018-01-26 14:28:31 -05:00
asdl.c replace PY_SIZE_MAX with SIZE_MAX 2016-09-07 09:26:18 -07:00
ast.c Don't hide unexpected errors in PyErr_WarnExplicitObject(). (#4585) 2017-12-01 08:40:23 +02:00
ast_opt.c bpo-9566: Fix size_t=>int downcast warnings (#5230) 2018-01-18 11:15:25 +01:00
ast_unparse.c [3.7] bpo-32711: Fix warnings for Python/ast_unparse.c (GH-5426) (#5475) 2018-02-01 18:41:24 +01:00
bltinmodule.c bpo-32674: Improve the docstring for __import__ (GH-5339) (GH-5488) 2018-02-01 23:51:36 -05:00
bootstrap_hash.c bpo-32329: Fix -R option for hash randomization (#4873) 2017-12-15 00:51:22 +01:00
ceval.c bpo-32550. Remove the STORE_ANNOTATION bytecode. (GH-5181) 2018-01-29 16:41:04 -08:00
ceval_gil.h bpo-30860: Consolidate stateful runtime globals. (#3397) 2017-09-07 23:51:28 -06:00
codecs.c bpo-32571: Avoid raising unneeded AttributeError and silencing it in C code (GH-5222) 2018-01-25 17:49:40 +09:00
compile.c bpo-32550. Remove the STORE_ANNOTATION bytecode. (GH-5181) 2018-01-29 16:41:04 -08:00
condvar.h bpo-30860: Consolidate stateful runtime globals. (#3397) 2017-09-07 23:51:28 -06:00
context.c bpo-32436: Use PyThreadState_GET() in all hot paths (GH-5363) 2018-01-27 13:24:20 -05:00
dtoa.c bpo-30923: Silence fall-through warnings included in -Wextra since gcc-7.0. (#3157) 2017-08-21 13:09:59 +02:00
dup2.c bpo-32150: Expand tabs to spaces in C files. (#4583) 2017-11-28 17:56:10 +02:00
dynamic_annotations.c bpo-32241: Add the const qualifire to declarations of umodifiable strings. (#4748) 2017-12-12 13:55:04 +02:00
dynload_aix.c PEP 489: Multi-phase extension module initialization 2015-05-23 22:24:10 +10:00
dynload_dl.c Issue #24268: Fix import naming when loading extension modules. Patch by Petr Viktorin. 2015-05-23 14:13:41 -07:00
dynload_hpux.c Issue #24268: Fix import naming when loading extension modules. Patch by Petr Viktorin. 2015-05-23 14:13:41 -07:00
dynload_shlib.c bpo-30860: Consolidate stateful runtime globals. (#3397) 2017-09-07 23:51:28 -06:00
dynload_stub.c
dynload_win.c [security] bpo-13617: Reject embedded null characters in wchar* strings. (#2302) 2017-06-28 08:30:06 +03:00
errors.c bpo-28994: PyErr_NormalizeException() no longer use C stack for recursion. (#2035) 2017-11-05 11:27:48 +02:00
fileutils.c bpo-32777: Fix _Py_set_inheritable async-safety in subprocess (GH-5560) (GH-5562) 2018-02-05 22:31:22 -08:00
formatter_unicode.c bpo-31900: Fix localeconv() encoding for LC_NUMERIC (#4174) 2018-01-15 15:58:02 +01:00
frozen.c Issue #26647: Python interpreter now uses 16-bit wordcode instead of bytecode. 2016-05-24 09:15:14 +03:00
frozenmain.c bpo-32241: Add the const qualifire to declarations of umodifiable strings. (#4748) 2017-12-12 13:55:04 +02:00
future.c bpo-32670: Enforce PEP 479. (#5327) 2018-01-26 15:24:24 -05:00
getargs.c [3.7] bpo-32746: Fix multiple typos (GH-5144) (GH-5520) 2018-02-03 20:41:43 -05:00
getcompiler.c closes bpo-31696: don't mention GCC in sys.version when building with clang (#3891) 2017-10-05 21:15:14 -07:00
getcopyright.c advance copyright years to 2018 (#5094) 2018-01-04 22:34:19 -08:00
getopt.c move pygetopt.h to internal (closes bpo-32264) (#4830) 2017-12-14 23:48:12 -08:00
getplatform.c bpo-32150: Expand tabs to spaces in C files. (#4583) 2017-11-28 17:56:10 +02:00
getversion.c bpo-32150: Expand tabs to spaces in C files. (#4583) 2017-11-28 17:56:10 +02:00
graminit.c bpo-30406: Make async and await proper keywords (#1669) 2017-10-05 23:24:46 -04:00
hamt.c bpo-32436: Fix compiler warning (GH-5483) (GH-5486) 2018-02-01 22:58:19 -05:00
import.c rename _imp initialization function to follow conventions (#5432) 2018-01-29 11:33:57 -08:00
importdl.c bpo-31315: Fix an assertion failure in imp.create_dynamic(), when spec.name is not a string. (#3257) 2017-09-19 14:39:47 +03:00
importdl.h PEP 489: Multi-phase extension module initialization 2015-05-23 22:24:10 +10:00
importlib.h bpo-32303 - Consistency fixes for namespace loaders (GH-5481) (#5503) 2018-02-02 19:49:25 -05:00
importlib_external.h bpo-32303 - Consistency fixes for namespace loaders (GH-5481) (#5503) 2018-02-02 19:49:25 -05:00
makeopcodetargets.py makeopcodetargets.py: we need to import Lib/opcode.py 2016-03-26 01:04:37 +01:00
marshal.c bpo-32011: Revert "Issue #15480: Remove the deprecated and unused TYPE_INT64 code from marshal." (#4381) 2017-11-15 17:41:05 +02:00
modsupport.c bpo-29852: Argument Clinic Py_ssize_t converter now supports None (#716) 2017-03-30 09:15:31 +03:00
mysnprintf.c
mystrtoul.c bpo-31370: Remove support for threads-less builds (#3385) 2017-09-07 18:56:24 +02:00
opcode_targets.h bpo-32550. Remove the STORE_ANNOTATION bytecode. (GH-5181) 2018-01-29 16:41:04 -08:00
pathconfig.c bpo-9566: Fix size_t=>int downcast warnings (#5230) 2018-01-18 11:15:25 +01:00
peephole.c bpo-29469: peephole: Remove const_stack (GH-4879) 2017-12-18 15:52:54 +09:00
pyarena.c Issue #18203: Replace malloc() with PyMem_Malloc() to allocate arena objects 2013-07-07 17:18:53 +02:00
pyctype.c
pyfpe.c bpo-29137: Remove fpectl module (#4789) 2018-01-05 23:15:34 -08:00
pyhash.c closes bpo-32460: ensure all non-static globals have initializers (#5061) 2017-12-31 10:04:13 -08:00
pylifecycle.c rename _imp initialization function to follow conventions (#5432) 2018-01-29 11:33:57 -08:00
pymath.c Issue 24366: Indent code (thanks to li4ick for reporting). 2015-06-02 18:53:46 -04:00
pystate.c bpo-32604: Fix memory leaks in the new _xxsubinterpreters module. (GH-5507) 2018-02-02 22:38:57 -07:00
pystrcmp.c
pystrhex.c bpo-32150: Expand tabs to spaces in C files. (#4583) 2017-11-28 17:56:10 +02:00
pystrtod.c Add the const qualifier to "char *" variables that refer to literal strings. (#4370) 2017-11-11 13:06:26 +02:00
pythonrun.c closes bpo-31650: PEP 552 (Deterministic pycs) implementation (#4575) 2017-12-09 10:26:52 -08:00
pytime.c Fix miscellaneous typos (#4275) 2017-11-05 15:37:50 +02:00
strdup.c bpo-32150: Expand tabs to spaces in C files. (#4583) 2017-11-28 17:56:10 +02:00
structmember.c Added the const qualifier to char* variables that refer to readonly internal 2016-11-20 10:16:47 +02:00
symtable.c bpo-10544: Deprecate "yield" in comprehensions and generator expressions. (GH-4579) 2017-12-01 14:54:17 +10:00
sysmodule.c bpo-32591: Add native coroutine origin tracking (#5250) 2018-01-21 09:44:07 -05:00
thread.c bpo-32241: Add the const qualifire to declarations of umodifiable strings. (#4748) 2017-12-12 13:55:04 +02:00
thread_nt.h Fix typo in thread_nt.h code comment (GH-5211) 2018-01-17 15:21:01 -08:00
thread_pthread.h bpo-32593: Drop FreeBSD 9 and older support (#5232) 2018-01-22 18:32:50 +01:00
traceback.c bpo-30579: Allow TracebackType creation and tb_next mutation from Python (GH-4793) 2018-01-07 23:30:18 +10:00
wordcode_helpers.h bpo-31338 (#3374) 2017-09-14 18:13:16 -07:00

README

Miscellaneous source files for the main Python shared library