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
README
Setup.dist bpo-28046: Remove MACHDEPPATH from Modules/Setup.dist (#5289) 2018-01-24 17:02:41 +01:00
_asynciomodule.c [3.7] bpo-32746: Fix multiple typos (GH-5144) (GH-5520) 2018-02-03 20:41:43 -05:00
_bisectmodule.c Issue #28792: Remove aliases from _bisect 2016-11-24 23:31:59 +01:00
_bz2module.c bpo-31370: Remove support for threads-less builds (#3385) 2017-09-07 18:56:24 +02:00
_codecsmodule.c bpo-24037: Add Argument Clinic converter `bool(accept={int})`. (#485) 2017-03-12 10:10:47 +02:00
_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 Issue #28999: Use Py_RETURN_NONE, Py_RETURN_TRUE and Py_RETURN_FALSE wherever 2017-01-23 09:47:21 +02:00
_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 Issue #15984: Merge PyUnicode doc from 3.5 2016-04-15 02:27:11 +00:00
_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 Issue #28999: Use Py_RETURN_NONE, Py_RETURN_TRUE and Py_RETURN_FALSE wherever 2017-01-23 09:47:21 +02:00
_lzmamodule.c bpo-31370: Remove support for threads-less builds (#3385) 2017-09-07 18:56:24 +02:00
_math.c Issue #28256: Cleanup _math.c 2016-10-18 16:29:27 +02:00
_math.h Issue #28256: Cleanup _math.c 2016-10-18 16:29:27 +02:00
_opcode.c Issue #27332: Fixed the type of the first argument of module-level functions 2016-07-07 17:35:15 +03:00
_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 Issue #28999: Use Py_RETURN_NONE, Py_RETURN_TRUE and Py_RETURN_FALSE wherever 2017-01-23 09:47:21 +02:00
_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 Expand the PySlice_GetIndicesEx macro. (#1023) 2017-04-08 09:53:51 +03:00
_testcapimodule.c Cleanup dangling reference in get_timezone_utc_capi (#5317) 2018-01-25 14:58:07 +01:00
_testimportmultiple.c
_testmultiphase.c Issue #28999: Use Py_RETURN_NONE, Py_RETURN_TRUE and Py_RETURN_FALSE wherever 2017-01-23 09:47:21 +02:00
_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 replace PY_LONG_LONG with long long 2016-09-06 10:46:49 -07:00
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 Issue 23229: add cmath.inf, cmath.nan, cmath.infj and cmath.nanj. 2016-08-29 13:56:58 +01:00
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 bpo-27593: Get SCM build info from git instead of hg. (#446) 2017-03-04 00:19:55 -05:00
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 Issue #28126: Replace Py_MEMCPY with memcpy(). Visual Studio can properly optimize memcpy(). 2016-09-13 20:22:02 +02:00
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 Issue #10656: Fix out-of-tree building on AIX 2016-11-20 07:56:37 +00:00
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
resource.c bpo-20185: Convert the resource moduel to Argument Clinic. (#545) 2017-03-12 13:08:30 +02:00
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
sha1module.c Issue #28999: Use Py_RETURN_NONE, Py_RETURN_TRUE and Py_RETURN_FALSE wherever 2017-01-23 09:47:21 +02:00
sha256module.c Issue #28999: Use Py_RETURN_NONE, Py_RETURN_TRUE and Py_RETURN_FALSE wherever 2017-01-23 09:47:21 +02:00
sha512module.c Removed redundant Argument Clinic directives. 2017-02-04 11:53:22 +02:00
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 Issue #20186: Converted the symtable module to Argument Clinic. 2017-02-04 12:13:20 +02:00
syslogmodule.c Issue #28999: Use Py_RETURN_NONE, Py_RETURN_TRUE and Py_RETURN_FALSE wherever 2017-01-23 09:47:21 +02:00
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 Issue #16840. Turn off bignum support in tkinter with with Tcl earlier than 8.5.8 2015-04-22 10:59:32 +03:00
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 Issue #17599: Use unique _Py_REPARSE_DATA_BUFFER etc names to avoid conflict 2016-08-04 02:38:59 +00:00
xxlimited.c merge 3.5 (#29398) 2017-01-31 23:31:10 -08:00
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 PEP 489: Multi-phase extension module initialization 2015-05-23 22:24:10 +10:00
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

README

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