cpython/Modules
Miss Islington (bot) 13df5d3497
[3.11] GH-95494: Fix transport EOF handling in OpenSSL 3.0 (GH-95495) (#103006)
GH-25309 enabled SSL_OP_IGNORE_UNEXPECTED_EOF by default, with a comment
that it restores OpenSSL 1.1.1 behavior, but this wasn't quite right.
That option causes OpenSSL to treat transport EOF as the same as
close_notify (i.e. SSL_ERROR_ZERO_RETURN), whereas Python actually has
distinct SSLEOFError and SSLZeroReturnError exceptions. (The latter is
usually mapped to a zero return from read.) In OpenSSL 1.1.1, the ssl
module would raise them for transport EOF and close_notify,
respectively. In OpenSSL 3.0, both act like close_notify.

Fix this by, instead, just detecting SSL_R_UNEXPECTED_EOF_WHILE_READING
and mapping that to the other exception type.

There doesn't seem to have been any unit test of this error, so fill in
the missing one. This had to be done with the BIO path because it's
actually slightly tricky to simulate a transport EOF with Python's fd
based APIs. (If you instruct the server to close the socket, it gets
confused, probably because the server's SSL object is still referencing
the now dead fd?)
(cherry picked from commit 420bbb783b)

Co-authored-by: David Benjamin <davidben@google.com>
2023-03-27 16:14:01 +02:00
..
_blake2 [3.11] gh-102027: Fix macro name (GH-102124) (#102916) 2023-03-24 13:40:22 +01:00
_ctypes [3.11] gh-99952: fix refcount issues in ctypes.Structure from_param() result (#101339) 2023-01-26 01:02:37 -08:00
_decimal gh-91320: Use _PyCFunction_CAST() (#92251) 2022-05-03 21:42:14 +02:00
_io gh-82052: Don't send partial UTF-8 sequences to the Windows API (GH-101103) 2023-01-17 11:52:50 -08:00
_multiprocessing GH-94736: Fix _multiprocessing.SemLock subclassing (GH-94738) 2022-07-11 05:40:02 -07:00
_sha3 bpo-47098: Replace Keccak Code Package with tiny_sha3 (GH-32060) 2022-03-26 21:36:08 +01:00
_sqlite [3.11] gh-95132: Correctly relay *args and **kwds from sqlite3.connect to factory (GH-95146) (#95158) 2022-07-23 10:23:19 +02:00
_sre gh-98740: Fix validation of conditional expressions in RE (GH-98764) 2022-11-03 00:47:39 -07:00
_ssl gh-91320: Argument Clinic uses _PyCFunction_CAST() (#32210) 2022-05-03 20:25:41 +02:00
_xxtestfuzz bpo-29505: Add fuzzer for ast.literal_eval (GH-28777) 2021-10-06 16:22:09 -07:00
cjkcodecs gh-91320: Argument Clinic uses _PyCFunction_CAST() (#32210) 2022-05-03 20:25:41 +02:00
clinic [3.11] Add missing 'is' to cmath.log() docstring (GH-102049) (#102279) 2023-02-26 14:55:44 +00:00
expat gh-98739: Update libexpat from 2.4.9 to 2.5.0 (GH-98742) 2022-10-27 14:21:35 -07:00
_abc.c [3.11] gh-95324: Emit a warning if an object doesn't call PyObject_GC_UnTrack during deallocation in debug mode (GH-95325) (#95336) 2022-07-27 16:55:44 +01:00
_asynciomodule.c [3.11] gh-101326: Fix regression when passing None to FutureIter.throw (GH-101327) (#101328) 2023-01-25 13:01:13 -08:00
_bisectmodule.c gh-92839: fixed typo in _bisectmodule.c (line 131) (GH-92849) 2022-05-28 11:31:06 -07:00
_bz2module.c bpo-43908: Make heap types converted during 3.10 alpha immutable (GH-26351) 2021-06-17 11:06:09 +01:00
_codecsmodule.c bpo-45467: Fix IncrementalDecoder and StreamReader in the "raw-unicode-escape" codec (GH-28944) 2021-10-14 20:04:19 +03:00
_collectionsmodule.c GH-100989: remove annotation from docstring (GH-102991) 2023-03-23 23:04:06 -07:00
_contextvarsmodule.c bpo-1635741: _contextvars uses PyModule_AddType() (GH-23147) 2020-11-04 16:33:55 +01:00
_cryptmodule.c closes bpo-44751: Move crypt.h include from public header to _cryptmodule (GH-27394) 2021-07-27 15:58:12 -07:00
_csv.c gh-65496: Correct wording on csv's skipinitialspace argument (GH-96170) 2022-10-07 16:45:53 -07:00
_curses_panel.c bpo-43916: Add Py_TPFLAGS_DISALLOW_INSTANTIATION type flag (GH-25721) 2021-04-30 12:46:15 +02:00
_cursesmodule.c GH-94644: fix test_curses ref leak (GH-94647) 2022-07-07 05:03:00 -07:00
_datetimemodule.c gh-91838: Resolve HTTP links which redirect to HTTPS (GH-95642) 2022-08-04 06:15:11 -07:00
_dbmmodule.c gh-89452: Prefer gdbm-compat over ndbm (#92208) 2022-05-03 18:27:38 +02:00
_elementtree.c gh-91320: Use _PyCFunction_CAST() (#92251) 2022-05-03 21:42:14 +02:00
_functoolsmodule.c gh-96641: Do not expose KeyWrapper in _functoolsmodule.c (gh-96642) 2022-09-07 04:50:00 -07:00
_gdbmmodule.c bpo-46541: Remove usage of _Py_IDENTIFIER from dbms modules (GH-31358) 2022-02-16 18:57:28 +09:00
_hashopenssl.c DOC: correct bytesarray -> bytearray in comments (GH-92410) (GH-94089) 2022-06-22 10:47:52 +02:00
_heapqmodule.c bpo-43974: Move Py_BUILD_CORE_MODULE into module code (GH-29157) 2021-10-22 15:36:28 +02:00
_json.c Use static inline function Py_EnterRecursiveCall() (#91988) 2022-05-04 13:30:23 +02:00
_localemodule.c bpo-47000: Add locale.getencoding() (GH-32068) 2022-04-09 09:54:54 +09:00
_lsprof.c GH-95045: gc untrack _lsprof.Profiler before deallocating it (GH-95315) 2022-07-27 05:37:43 -07:00
_lzmamodule.c bpo-46541: Remove usage of _Py_IDENTIFIER from lzma module (GH-31683) 2022-03-05 01:38:56 +09:00
_math.h bpo-45548: Remove _math.c workarounds for pre-C99 libm (GH-29179) 2021-10-25 01:25:27 -07:00
_opcode.c bpo-46072: Add --with-pystats configure option to simplify gathering of VM stats (GH-30116) 2021-12-15 15:32:32 +00:00
_operator.c DOC: correct bytesarray -> bytearray in comments (GH-92410) (GH-94089) 2022-06-22 10:47:52 +02:00
_pickle.c gh-83004: Clean up refleak in _pickle initialisation (GH-98841) 2022-11-06 06:41:24 -08:00
_posixsubprocess.c gh-82616: Add process_group support to subprocess.Popen (#23930) 2022-05-05 16:22:32 -07:00
_queuemodule.c bpo-46613: Add PyType_GetModuleByDef to the public API (GH-31081) 2022-02-11 17:22:11 +01:00
_randommodule.c bpo-46613: Add PyType_GetModuleByDef to the public API (GH-31081) 2022-02-11 17:22:11 +01:00
_scproxy.c bpo-1635741: port scproxy to multi-phase init (GH-22164) 2020-09-09 12:28:48 +09:00
_ssl.c [3.11] GH-95494: Fix transport EOF handling in OpenSSL 3.0 (GH-95495) (#103006) 2023-03-27 16:14:01 +02:00
_ssl.h bpo-46541: remove usage of _Py_IDENTIFIER from _ssl module (GH-31599) 2022-03-02 00:38:21 +09:00
_ssl_data.h closes bpo-40266, closes bpo-39953: Use numeric lib code if compiling against old OpenSSL. (GH-19506) 2020-04-13 22:11:40 -05:00
_ssl_data_111.h bpo-43788: Generate version specific _ssl_data.h (GH-25300) 2021-04-09 08:02:00 -07:00
_ssl_data_300.h bpo-43788: Generate version specific _ssl_data.h (GH-25300) 2021-04-09 08:02:00 -07:00
_stat.c bpo-40677: Define IO_REPARSE_TAG_APPEXECLINK explicitly (GH-20206) 2020-05-19 13:22:16 +01:00
_statisticsmodule.c bpo-40268: Remove unused structmember.h includes (GH-19530) 2020-04-15 02:35:41 +02:00
_struct.c GH-94254: Make _struct module types immutable (GH-94269) 2022-06-26 03:42:41 -07:00
_testbuffer.c gh-91320: Use _PyCFunction_CAST() (#92251) 2022-05-03 21:42:14 +02:00
_testcapi_feature_macros.inc gh-91324: List feature macros in the stable ABI manifest, improve tests (GH-32415) 2022-04-28 16:30:28 +02:00
_testcapimodule.c [3.11] gh-102493: backport unit test for PyErr_SetObject (#102602) 2023-03-11 15:01:01 +00:00
_testclinic.c [3.11] gh-64490: Fix bugs in argument clinic varargs processing (GH-32092) (#100368) 2022-12-28 02:10:06 +01:00
_testimportmultiple.c Remove compile warnings for _testimportmodule 2012-12-15 18:16:47 +02:00
_testinternalcapi.c Fix NULL test in _testinternalcapi (GH-92861) 2022-05-16 18:57:42 -07:00
_testmultiphase.c gh-91320: Use _PyCFunction_CAST() (#92251) 2022-05-03 21:42:14 +02:00
_threadmodule.c [3.11] GH-100892: Fix race in clearing threading.local (GH-100922). (#100937) 2023-01-11 21:01:48 +05:30
_tkinter.c bpo-46996: Remove support of Tcl/Tk < 8.5.12 (GH-31839) 2022-03-17 13:05:52 +02:00
_tracemalloc.c [3.11] GH-96612: Skip incomplete frames in tracemalloc traces. (GH-96613) (#96617) 2022-09-06 18:42:41 +01:00
_typingmodule.c bpo-44353: Implement typing.NewType __call__ method in C (#27262) 2021-07-22 23:06:54 +02:00
_uuidmodule.c bpo-45847: Port _uuid to PY_STDLIB_MOD (GH-29741) 2021-11-24 10:20:37 +01:00
_weakref.c bpo-46937: convert remaining functions to AC in _weakref (GH-31705) 2022-03-07 18:57:45 +09:00
_winapi.c [3.11] bpo-40882: Fix a memory leak in SharedMemory on Windows (GH-20684) (#99973) 2022-12-05 13:38:25 +01:00
_xxsubinterpretersmodule.c gh-93937, C API: Move PyFrame_GetBack() to Python.h (#93938) (#94000) 2022-06-20 15:47:41 +02:00
_zoneinfo.c gh-83004: Clean up refleak in _zoneinfo initialisation (GH-98842) 2022-11-06 06:30:41 -08:00
addrinfo.h [3.11] gh-95174: WASI: skip missing sockets functions (GH-95179) (GH-95308) 2022-07-31 18:19:32 +02:00
arraymodule.c bpo-47070: Add _PyBytes_Repeat() (GH-31999) 2022-03-28 04:43:45 -04:00
atexitmodule.c fixes gh-96292: Fix Trivial Typo in cpython/Modules/atexitmodule.c (GH-96327) 2022-08-26 22:59:21 -07:00
audioop.c bpo-2716: add license for audioop module (GH-19972) 2022-10-21 16:07:30 -07:00
binascii.c bpo-38256: Fix binascii.crc32() when inputs are 4+GiB (GH-32000) 2022-03-20 12:28:15 -07:00
cmathmodule.c [3.11] Add missing 'is' to cmath.log() docstring (GH-102049) (#102279) 2023-02-26 14:55:44 +00:00
config.c.in Add tests for the C tokenizer and expose it as a private module (GH-27924) 2021-08-24 17:50:05 +01:00
errnomodule.c [3.11] gh-96005: Handle WASI ENOTCAPABLE in getpath (GH-96006) (GH-96034) (GH-96038) 2022-09-13 13:00:45 +02:00
faulthandler.c gh-96055: Update faulthandler to emit proper unexpect signal number (gh-99162) 2022-11-06 18:45:54 -08:00
fcntlmodule.c bpo-46016: fcntl module add FreeBSD's F_DUP2FD_CLOEXEC flag support (GH-29993) 2021-12-08 23:28:51 +01:00
gc_weakref.txt Fix typos in the Modules directory (GH-28761) 2021-10-07 01:34:42 -07:00
gcmodule.c [3.11] gh-95324: Emit a warning if an object doesn't call PyObject_GC_UnTrack during deallocation in debug mode (GH-95325) (#95336) 2022-07-27 16:55:44 +01:00
getaddrinfo.c [3.11] gh-95174: WASI: skip missing sockets functions (GH-95179) (GH-95308) 2022-07-31 18:19:32 +02:00
getbuildinfo.c bpo-45532: Replace 'default' with 'main' as default in sys.version (GH-29100) 2021-10-21 02:09:03 +09:00
getnameinfo.c [3.11] gh-95174: WASI: skip missing sockets functions (GH-95179) (GH-95308) 2022-07-31 18:19:32 +02:00
getpath.c [3.11] gh-102281: Fix potential nullptr dereference + use of uninitia… (#103040) 2023-03-25 16:35:00 -07:00
getpath.py gh-101543: Ensure Windows registry path is only used when stdlib can't be found (GH-101544) 2023-02-06 09:34:05 -08:00
getpath_noop.c bpo-45582: Port getpath[p].c to Python (GH-29041) 2021-12-03 00:08:42 +00:00
grpmodule.c bpo-1635741: Port grp and pwd to multiphase initialization (GH-23360) 2020-11-18 23:47:32 -08:00
hashlib.h hashlib: Fix old message about unicode objects. (GH-28653) 2021-10-01 14:38:49 +02:00
itertoolsmodule.c [3.11] gh-60203: Revert changes in cycle.__setstate__ (GH-99982) (#100016) 2022-12-05 17:58:40 +01:00
ld_so_aix.in Issue #10656: Fix out-of-tree building on AIX 2016-11-20 07:56:37 +00:00
main.c gh-90473: Check for HAVE_KILL in main.c:exit_sigint (GH-95165) 2022-07-23 04:09:10 -07:00
makesetup [3.11] gh-94404: Use module CFLAGS before PY_STDMODULE_CFLAGS (GH-94413) (GH-94415) 2022-06-29 16:22:41 +02:00
makexp_aix bpo-42087: Remove support for AIX 5.3 and below (GH-22830) 2020-11-16 16:16:10 +01:00
mathmodule.c GH-98897: fix memory leak if math.dist raises exception (GH-98898) 2022-10-31 19:40:30 -07:00
md5module.c bpo-43974: Move Py_BUILD_CORE_MODULE into module code (GH-29157) 2021-10-22 15:36:28 +02:00
mmapmodule.c bpo-46848: Move _PyBytes_Find() to internal C API (GH-31642) 2022-03-02 14:15:26 +01:00
nismodule.c gh-91320: Use _PyCFunction_CAST() (#92251) 2022-05-03 21:42:14 +02:00
ossaudiodev.c gh-91734: Fix ossaudio support on Solaris (GH-91735) 2022-04-20 13:46:08 +03:00
overlapped.c [3.11] gh-98793: Fix typecheck in overlapped.c (GH-98835) (#98889) 2022-10-31 11:21:01 -07:00
posixmodule.c gh-102179: Fix os.dup2 error reporting for negative fds (GH-102180) 2023-03-04 06:55:02 -08:00
posixmodule.h bpo-41498: Fix build on platforms without sigset_t (GH-29770) 2021-11-25 12:28:41 +01:00
pwdmodule.c bpo-46670: Remove unused macros in the Modules directory (GH-31194) 2022-02-07 16:21:31 +01:00
pyexpat.c gh-100689: Revert "bpo-41798: pyexpat: Allocate the expat_CAPI on the heap memory (GH-24061)" (GH-100745) 2023-01-08 05:19:37 -08:00
readline.c Fix readline.c compiler warning. (GH-98738) 2022-10-26 16:16:09 -07:00
README Issue #18093: Factor out the programs that embed the runtime 2014-07-25 21:52:14 +10:00
resource.c bpo-40280: Address more test failures on Emscripten (GH-31050) 2022-02-05 20:52:01 +01: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 [3.11] gh-95174: Handle missing dup() and constants in WASI (GH-95229) (GH-95272) 2022-07-31 16:39:41 +01:00
Setup bpo-45847: Port _scproxy to PY_STDLIB_MOD (GH-29644) 2021-11-20 10:18:48 +01:00
Setup.bootstrap.in bpo-47152: Move sources of the _sre module into a subdirectory (GH-32290) 2022-04-04 10:53:26 +03:00
Setup.stdlib.in [3.11] gh-96002: Add functional test for Argument Clinic (GH-96178) (#100230) 2022-12-17 12:04:54 +05:30
sha1module.c bpo-43974: Move Py_BUILD_CORE_MODULE into module code (GH-29157) 2021-10-22 15:36:28 +02:00
sha256module.c bpo-43974: Move Py_BUILD_CORE_MODULE into module code (GH-29157) 2021-10-22 15:36:28 +02:00
sha512module.c bpo-43974: Move Py_BUILD_CORE_MODULE into module code (GH-29157) 2021-10-22 15:36:28 +02:00
signalmodule.c GH-102397: Fix segfault from race condition in signal handling (GH-102399) 2023-03-08 00:26:20 -08:00
socketmodule.c gh-100795: Don't call freeaddrinfo on failure. (GH-101252) 2023-01-23 15:30:19 -08:00
socketmodule.h bpo-40280: Disable AF_UNIX, AF_PACKET, SO_REUSE* on Emscripten (#31829) 2022-03-11 23:25:14 +01:00
spwdmodule.c gh-91217: deprecate spwd (#91846) 2022-04-23 14:48:17 -07:00
symtablemodule.c bpo-42725: Render annotations effectless on symbol table with PEP 563 (GH-25583) 2021-05-03 10:43:00 +03:00
syslogmodule.c gh-98178: syslog() is not thread-safe on macOS (GH-98213) 2022-10-13 04:59:23 -07:00
termios.c GH-97001: Release GIL in termios extension (GH-99503) 2022-11-22 03:28:06 -08:00
testcapi_long.h Issue #9530: Fix undefined behaviour due to signed overflow in testcapi_long.h. 2011-11-19 17:58:15 +00:00
timemodule.c gh-90473: Decrease recursion limit and skip tests on WASI (GH-92803) 2022-05-19 08:05:52 -07:00
tkappinit.c Issue #4350: Removed a number of out-of-dated and non-working for a long time 2014-07-23 22:33:50 +03:00
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 gh-101372: Fix unicodedata.is_normalized to properly handle the UCD 3… (gh-101388) 2023-02-06 02:32:30 -08:00
unicodedata_db.h closes bpo-45190: Update Unicode data to version 14.0.0. (GH-28336) 2021-09-14 11:00:38 -07:00
unicodename_db.h closes bpo-45190: Update Unicode data to version 14.0.0. (GH-28336) 2021-09-14 11:00:38 -07:00
winreparse.h bpo-31512: Add non-elevated symlink support for Windows (GH-3652) 2019-04-09 11:19:46 -07:00
xxlimited.c [3.11] gh-95324: Emit a warning if an object doesn't call PyObject_GC_UnTrack during deallocation in debug mode (GH-95325) (#95336) 2022-07-27 16:55:44 +01:00
xxlimited_35.c [3.11] gh-90763: Modernise xx template module initialisation (GH-93078) (#93681) 2022-06-10 13:28:48 +02:00
xxmodule.c [3.11] gh-90763: Modernise xx template module initialisation (GH-93078) (#93681) 2022-06-10 13:28:48 +02:00
xxsubtype.c gh-91320: Use _PyCFunction_CAST() (#92251) 2022-05-03 21:42:14 +02:00
zlibmodule.c bpo-38256: Fix binascii.crc32() when inputs are 4+GiB (GH-32000) 2022-03-20 12:28:15 -07:00

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