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
_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
_cryptmodule.c
_csv.c gh-65496: Correct wording on csv's skipinitialspace argument (GH-96170) 2022-10-07 16:45:53 -07:00
_curses_panel.c
_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
_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
_ssl_data_111.h
_ssl_data_300.h
_stat.c
_statisticsmodule.c
_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
_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
_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
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
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
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
resource.c bpo-40280: Address more test failures on Emscripten (GH-31050) 2022-02-05 20:52:01 +01:00
rotatingtree.c
rotatingtree.h
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
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
timemodule.c gh-90473: Decrease recursion limit and skip tests on WASI (GH-92803) 2022-05-19 08:05:52 -07:00
tkappinit.c
tkinter.h
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
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.