cpython/Modules
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
..
_blake2 bpo-31933: fix blake2 multi-byte params on big endian platforms (#4250) 2017-11-03 20:02:41 +01:00
_ctypes closes bpo-32460: ensure all non-static globals have initializers (#5061) 2017-12-31 10:04:13 -08:00
_decimal bpo-32630: Use contextvars in decimal (GH-5278) 2018-01-27 13:46:46 -05:00
_io bpo-32228: Reset raw_pos after unwinding the raw stream (#4858) 2018-01-28 17:00:09 +01:00
_multiprocessing bpo-31653: Remove deadcode in semlock_acquire() (#4091) 2017-10-23 13:57:51 -07:00
_sha3 bpo-32240: Add the const qualifier to declarations of PyObject* array arguments. (#4746) 2017-12-15 13:11:11 +02:00
_sqlite closes bpo-32460: ensure all non-static globals have initializers (#5061) 2017-12-31 10:04:13 -08:00
_xxtestfuzz Avoid UB in test selection macro. (#3407) 2017-09-06 18:00:47 -07:00
cjkcodecs bpo-32240: Add the const qualifier to declarations of PyObject* array arguments. (#4746) 2017-12-15 13:11:11 +02:00
clinic bpo-20104: Expose posix_spawn in the os module (GH-5109) 2018-01-28 17:56:10 -08:00
expat Fix miscellaneous typos (#4275) 2017-11-05 15:37:50 +02:00
_asynciomodule.c [3.7] bpo-32746: Fix multiple typos (GH-5144) (GH-5520) 2018-02-03 20:41:43 -05:00
_bisectmodule.c
_bz2module.c bpo-31370: Remove support for threads-less builds (#3385) 2017-09-07 18:56:24 +02:00
_codecsmodule.c
_collectionsmodule.c bpo-32571: Avoid raising unneeded AttributeError and silencing it in C code (GH-5222) 2018-01-25 17:49:40 +09:00
_contextvarsmodule.c bpo-32436: Implement PEP 567 (#5027) 2018-01-22 19:11:18 -05:00
_cryptmodule.c fixes bpo-31866: remove code pertaining to AtheOS support (#4115) 2017-10-25 23:55:14 -07:00
_csv.c bpo-32255: Always quote a single empty field when write into a CSV file. (#4769) 2017-12-12 11:57:06 +02:00
_curses_panel.c
_cursesmodule.c correct the typos (#4950) 2017-12-20 23:36:10 +02:00
_datetimemodule.c [3.7] bpo-32746: Fix multiple typos (GH-5144) (GH-5520) 2018-02-03 20:41:43 -05:00
_dbmmodule.c bpo-30022: Get rid of using EnvironmentError and IOError (except test… (#1051) 2017-04-16 10:46:38 +03:00
_elementtree.c bpo-32240: Add the const qualifier to declarations of PyObject* array arguments. (#4746) 2017-12-15 13:11:11 +02:00
_functoolsmodule.c bpo-32422: Reduce lru_cache memory usage (GH-5008) 2017-12-26 02:03:24 +09:00
_gdbmmodule.c bpo-30022: Get rid of using EnvironmentError and IOError (except test… (#1051) 2017-04-16 10:46:38 +03:00
_hashopenssl.c [3.7] bpo-32746: Fix multiple typos (GH-5144) (GH-5520) 2018-02-03 20:41:43 -05:00
_heapqmodule.c
_json.c bpo-24641: Improved error message for JSON unserializible keys. (#4364) 2017-11-25 17:38:20 +02:00
_localemodule.c bpo-31900: Fix localeconv() encoding for LC_NUMERIC (#4174) 2018-01-15 15:58:02 +01:00
_lsprof.c
_lzmamodule.c bpo-31370: Remove support for threads-less builds (#3385) 2017-09-07 18:56:24 +02:00
_math.c
_math.h
_opcode.c
_operator.c bpo-30592: Fixed error messages for some builtins. (#1996) 2017-06-08 14:41:19 +03:00
_pickle.c [3.7] bpo-32746: Fix multiple typos (GH-5144) (GH-5520) 2018-02-03 20:41:43 -05:00
_posixsubprocess.c bpo-32777: Fix _Py_set_inheritable async-safety in subprocess (GH-5560) (GH-5562) 2018-02-05 22:31:22 -08:00
_queuemodule.c bpo-14976: Reentrant simple queue (#3346) 2018-01-16 00:27:16 +01:00
_randommodule.c bpo-31478: Fix an assertion failure in random.seed() in case a seed has a bad __abs__() method. (#3596) 2017-09-28 10:50:01 +03:00
_scproxy.c
_sre.c bpo-32308: Replace empty matches adjacent to a previous non-empty match in re.sub(). (#4846) 2018-01-04 11:06:13 +02:00
_ssl.c bpo-31429: Define TLS cipher suite on build time (#3532) 2018-01-29 14:10:18 +01:00
_ssl_data.h
_stat.c
_struct.c bpo-32240: Add the const qualifier to declarations of PyObject* array arguments. (#4746) 2017-12-15 13:11:11 +02:00
_testbuffer.c
_testcapimodule.c Cleanup dangling reference in get_timezone_utc_capi (#5317) 2018-01-25 14:58:07 +01:00
_testimportmultiple.c
_testmultiphase.c
_threadmodule.c bpo-32544: Speed up hasattr() and getattr() (GH-5173) 2018-01-16 20:52:41 +09:00
_tkinter.c Fix miscellaneous typos (#4275) 2017-11-05 15:37:50 +02:00
_tracemalloc.c bpo-32030: Enhance Py_Main() (#4412) 2017-11-15 18:11:45 -08:00
_uuidmodule.c bpo-32493: Not only AIX, but FreeBSD has uuid_create support (#5089) 2018-01-09 20:38:07 +01:00
_weakref.c bpo-32150: Expand tabs to spaces in C files. (#4583) 2017-11-28 17:56:10 +02:00
_winapi.c bpo-19764: Implemented support for subprocess.Popen(close_fds=True) on Windows (#1218) 2017-12-18 10:28:19 +01:00
_xxsubinterpretersmodule.c bpo-32604: Fix memory leaks in the new _xxsubinterpreters module. (GH-5507) 2018-02-02 22:38:57 -07:00
addrinfo.h
arraymodule.c bpo-32571: Avoid raising unneeded AttributeError and silencing it in C code (GH-5222) 2018-01-25 17:49:40 +09:00
atexitmodule.c bpo-31901: atexit callbacks should be run at subinterpreter shutdown (#4611) 2017-12-20 11:17:58 +01:00
audioop.c bpo-28261: Fixed err msgs where PyArg_ParseTuple is used to parse normal tuples. (#3119) 2017-08-20 18:35:36 +03:00
binascii.c bpo-9566: Fix some Windows x64 compiler warnings (#2492) 2017-07-26 15:17:57 -07:00
cmathmodule.c
config.c.in rename _imp initialization function to follow conventions (#5432) 2018-01-29 11:33:57 -08:00
errnomodule.c
faulthandler.c bpo-32297: Few misspellings found in Python source code comments. (#4803) 2017-12-14 13:04:53 +02:00
fcntlmodule.c bpo-30022: Get rid of using EnvironmentError and IOError (except test… (#1051) 2017-04-16 10:46:38 +03:00
gc_weakref.txt
gcmodule.c Revert "bpo-31356: Add context manager to temporarily disable GC GH-5495 (#5496) 2018-02-02 10:04:32 -05:00
getaddrinfo.c bpo-32241: Add the const qualifire to declarations of umodifiable strings. (#4748) 2017-12-12 13:55:04 +02:00
getbuildinfo.c
getnameinfo.c
getpath.c bpo-29240: Fix locale encodings in UTF-8 Mode (#5170) 2018-01-15 10:45:49 +01:00
grpmodule.c [security] bpo-13617: Reject embedded null characters in wchar* strings. (#2302) 2017-06-28 08:30:06 +03:00
hashlib.h bpo-31370: Remove support for threads-less builds (#3385) 2017-09-07 18:56:24 +02:00
hashtable.c Replace KB unit with KiB (#4293) 2017-11-08 14:44:44 -08:00
hashtable.h
itertoolsmodule.c bpo-32571: Avoid raising unneeded AttributeError and silencing it in C code (GH-5222) 2018-01-25 17:49:40 +09:00
ld_so_aix.in
main.c bpo-32652: Defer pymain_set_global_config() call (#5303) 2018-01-25 09:18:36 +01:00
makesetup bpo-20210: Support the *disabled* marker in Setup files (GH-132) 2017-05-27 18:25:03 +02:00
makexp_aix
mathmodule.c bpo-31338 (#3374) 2017-09-14 18:13:16 -07:00
md5module.c [3.7] bpo-32746: Fix multiple typos (GH-5144) (GH-5520) 2018-02-03 20:41:43 -05:00
mmapmodule.c Add the const qualifier to "char *" variables that refer to literal strings. (#4370) 2017-11-11 13:06:26 +02:00
nismodule.c [security] bpo-13617: Reject embedded null characters in wchar* strings. (#2302) 2017-06-28 08:30:06 +03:00
ossaudiodev.c Add the const qualifier to "char *" variables that refer to literal strings. (#4370) 2017-11-11 13:06:26 +02:00
overlapped.c bpo-32622: Implement loop.sendfile() (#5271) 2018-01-27 21:22:47 +02:00
parsermodule.c bpo-23699: Use a macro to reduce boilerplate code in rich comparison functions (GH-793) 2017-11-02 20:32:54 +10:00
posixmodule.c bpo-32681: Fix an uninitialized variable in the C implementation of os.dup2 (GH-5346) 2018-01-29 22:04:36 -08:00
posixmodule.h
pwdmodule.c [security] bpo-13617: Reject embedded null characters in wchar* strings. (#2302) 2017-06-28 08:30:06 +03:00
pyexpat.c bpo-28411: Support other mappings in PyInterpreterState.modules. (#3593) 2017-09-15 16:35:20 -06:00
readline.c bpo-29240: Fix locale encodings in UTF-8 Mode (#5170) 2018-01-15 10:45:49 +01:00
README
resource.c
rotatingtree.c
rotatingtree.h bpo-32150: Expand tabs to spaces in C files. (#4583) 2017-11-28 17:56:10 +02:00
selectmodule.c bpo-28914: Fix compilation of select on Android (#5447) 2018-01-30 12:18:54 +01:00
Setup.dist bpo-28046: Remove MACHDEPPATH from Modules/Setup.dist (#5289) 2018-01-24 17:02:41 +01:00
sha1module.c
sha256module.c
sha512module.c
signalmodule.c bpo-30050: Allow disabling full buffer warnings in signal.set_wakeup_fd (#4792) 2017-12-17 23:10:18 -05:00
socketmodule.c [3.7] bpo-32746: Fix multiple typos (GH-5144) (GH-5520) 2018-02-03 20:41:43 -05:00
socketmodule.h bpo-31927: Fix bugs in socketmodule.c on NetBSD and other issues. (#4235) 2017-11-09 18:00:38 +02:00
spwdmodule.c [security] bpo-13617: Reject embedded null characters in wchar* strings. (#2302) 2017-06-28 08:30:06 +03:00
sre.h bpo-25054, bpo-1647489: Added support of splitting on zerowidth patterns. (#4471) 2017-12-04 14:29:05 +02:00
sre_constants.h bpo-31690: Allow the inline flags "a", "L", and "u" to be used as group flags for RE. (#3885) 2017-10-24 23:31:42 +03:00
sre_lib.h bpo-25054, bpo-1647489: Added support of splitting on zerowidth patterns. (#4471) 2017-12-04 14:29:05 +02:00
symtablemodule.c
syslogmodule.c
termios.c bpo-32660: Solaris should support constants like termios' FIONREAD (#5328) 2018-01-28 14:00:48 +01:00
testcapi_long.h
timemodule.c bpo-29240: Fix locale encodings in UTF-8 Mode (#5170) 2018-01-15 10:45:49 +01:00
tkappinit.c
tkinter.h
unicodedata.c Fix miscellaneous typos (#4275) 2017-11-05 15:37:50 +02:00
unicodedata_db.h bpo-30736: upgrade to Unicode 10.0 (#2344) 2017-06-22 22:31:08 -07:00
unicodename_db.h bpo-30736: upgrade to Unicode 10.0 (#2344) 2017-06-22 22:31:08 -07:00
winreparse.h
xxlimited.c
xxmodule.c bpo-31443: Formulate the type slot initialization rules in terms of C99. (#3688) 2017-09-22 17:44:58 +02:00
xxsubtype.c
zipimport.c bpo-32248 - Implement ResourceReader and get_resource_reader() for zipimport (#5248) 2018-01-24 15:36:21 -05:00
zlibmodule.c bpo-31926: fix missing *_METHODDEF statements by argument clinic (#4230) 2017-11-03 11:09:00 +02:00

Source files for standard library extension modules,
and former extension modules that are now builtin modules.