cpython/Modules
Miss Islington (bot) 52efb95b45
[3.13] gh-126554: ctypes: Correctly handle NULL dlsym values (GH-126555) (#126861)
For dlsym(), a return value of NULL does not necessarily indicate
an error [1].

Therefore, to avoid using stale (or NULL) dlerror() values, we must:

 1. clear the previous error state by calling dlerror()
 2. call dlsym()
 3. call dlerror()

If the return value of dlerror() is not NULL, an error occured.

In ctypes we choose to treat a NULL return value from dlsym()
as a "not found" error. This is the same as the fallback
message we use on Windows, Cygwin or when getting/formatting
the error reason fails.

[1]: https://man7.org/linux/man-pages/man3/dlsym.3.html

(cherry picked from commit 8717f792f7)

Signed-off-by: Georgios Alexopoulos <grgalex@ba.uoa.gr>
Co-authored-by: George Alexopoulos <giorgosalexo0@gmail.com>
Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
Co-authored-by: Petr Viktorin <encukou@gmail.com>
2024-11-17 18:59:13 +01:00
..
_blake2 gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
_ctypes [3.13] gh-126554: ctypes: Correctly handle NULL dlsym values (GH-126555) (#126861) 2024-11-17 18:59:13 +01:00
_decimal [3.13] gh-123657: Fix crash and refleak in decimal.getcontext() (GH-123703) (GH-123774) 2024-09-06 15:18:01 +02:00
_hacl gh-99108: Refresh HACL*; update modules accordingly; fix namespacing (GH-117237) 2024-03-26 00:35:26 +00:00
_io [3.13] gh-121489: Export private _PyBytes_Join() again (GH-122267) (#122287) 2024-07-25 16:06:31 +00:00
_multiprocessing [3.13] gh-117657: Acquire a critical section around SemLock.__{enter,exit}__ (GH-118812) (#118856) 2024-05-09 16:31:38 +00:00
_sqlite [3.13] gh-113993: Allow interned strings to be mortal, and fix related issues (GH-120520) (GH-120945) 2024-06-24 20:24:19 +02:00
_sre [3.13] gh-119344: Make critical section API public (GH-119353) (#120856) 2024-06-21 20:20:41 +00:00
_ssl gh-111926: Make weakrefs thread-safe in free-threaded builds (#117168) 2024-04-08 10:58:38 -04:00
_testcapi [3.13] gh-111495: Add tests for PyNumber C API (GH-111996) (#123375) 2024-09-02 13:11:06 +02:00
_testinternalcapi [3.13] gh-117511: Make PyMutex public in the non-limited API (GH-117731) (#120800) 2024-06-20 16:00:25 +00:00
_testlimitedcapi [3.13] gh-111495: Add tests for PyTuple C API (GH-118757) (GH-123371) 2024-08-27 12:07:17 +03:00
_xxtestfuzz [3.13] gh-121023: Improve _xxtestfuzz/README.rst (GH-121024) (#124140) 2024-09-23 17:23:54 -07:00
cjkcodecs gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
clinic [3.13] gh-125243: Fix ZoneInfo data race in free threading build (GH-125281) (gh-125414) 2024-10-15 17:02:32 -04:00
expat [3.13] gh-126623: Update libexpat to 2.6.4, make future updates easier (GH-126792) (GH-126796) 2024-11-13 18:56:17 +00:00
_abc.c gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
_asynciomodule.c [3.13] gh-126405: fix use-after-free in _asyncio.Future.remove_done_callback (GH-126733) (#126736) 2024-11-12 13:04:27 +00:00
_bisectmodule.c [3.13] gh-126035: add missing whitespace to *Py_EnterRecursiveCall() messages (GH-126036) (#126058) 2024-10-27 22:19:37 +00:00
_bz2module.c gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
_codecsmodule.c gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
_collectionsmodule.c [3.13] gh-117657: Fix data races reported by TSAN in some set methods (GH-120914) (#121240) 2024-07-01 19:40:28 +00:00
_contextvarsmodule.c gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
_csv.c [3.13] gh-116738: Make _csv module thread-safe (GH-118344) (#125328) 2024-10-11 18:22:56 +00:00
_curses_panel.c [3.13] gh-113565: Improve and harden detection of curses dependencies (GH-119816) (#121202) 2024-07-01 08:35:38 +00:00
_cursesmodule.c [3.13] gh-126313: Fix a crash in curses.napms() due to incorrect error handling (GH-126351) (#126493) 2024-11-06 14:33:23 +01:00
_datetimemodule.c [3.13] gh-52551: Fix encoding issues in strftime() (GH-125193) (GH-125657) 2024-10-17 22:48:34 +03:00
_dbmmodule.c gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
_elementtree.c [3.13] gh-123213: Fixed xml.etree.ElementTree.Element.extend and assignment to no longer hide exceptions (GH-123214) (#123257) 2024-09-02 13:10:09 +02:00
_functoolsmodule.c [3.13] Align functools.reduce() docstring with PEP-257 (GH-126045) (#126113) 2024-10-29 10:13:35 +01:00
_gdbmmodule.c gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
_hashopenssl.c gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
_heapqmodule.c gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
_interpchannelsmodule.c [3.13] gh-126433: Fix compiler warnings on 32-bit Windows (#126444) (#126827) 2024-11-14 13:21:27 +01:00
_interpqueuesmodule.c [3.13] gh-125716: Use a Global Mutex When Initializing Global State For the _interpqueues Module (gh-125817) 2024-10-21 22:16:32 +00:00
_interpreters_common.h [3.13] gh-76785: Expand How Interpreter Channels Handle Interpreter Finalization (gh-121811) 2024-07-15 20:15:47 +00:00
_interpretersmodule.c [3.13] gh-126654: Fix crash in several functions in _interpreters module (GH-126678) (#126681) 2024-11-11 12:01:22 +00:00
_json.c gh-95382: Improve performance of json encoder with indent (GH-118105) 2024-05-06 11:04:39 +03:00
_localemodule.c [3.13] gh-124969: Make locale.nl_langinfo(locale.ALT_DIGITS) returning a string again (GH-125774) (GH-125804) 2024-10-21 19:30:23 +00:00
_lsprof.c [3.13] gh-126425: Refactor _lsprof_Profiler_enable (GH-126426) (#126442) 2024-11-05 12:48:18 +00:00
_lzmamodule.c gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
_math.h gh-101678: refactor the math module to use special functions from c11 (GH-101679) 2023-02-09 00:40:52 -08:00
_opcode.c [3.13] gh-120642: Move private PyCode APIs to the internal C API (#120643) (#121043) 2024-06-26 15:35:19 +02:00
_operator.c [3.13] gh-113993: Allow interned strings to be mortal, and fix related issues (GH-120520) (GH-120945) 2024-06-24 20:24:19 +02:00
_pickle.c [3.13] gh-125631: Enable setting persistent_id and persistent_load of pickler and unpickler (GH-125752) (GH-126528) 2024-11-07 07:21:23 +00:00
_posixsubprocess.c gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
_queuemodule.c gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
_randommodule.c gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
_scproxy.c gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
_ssl.c [3.13] gh-126433: Fix compiler warnings on 32-bit Windows (#126444) (#126827) 2024-11-14 13:21:27 +01:00
_ssl.h GH-103092: isolate _ssl (#104725) 2023-05-22 06:14:48 +05:30
_ssl_data_31.h gh-103142: Upgrade binary builds and CI to OpenSSL 1.1.1u (#105174) 2023-06-01 09:42:18 -07:00
_ssl_data_111.h gh-103142: Upgrade binary builds and CI to OpenSSL 1.1.1u (#105174) 2023-06-01 09:42:18 -07:00
_ssl_data_300.h gh-103142: Upgrade binary builds and CI to OpenSSL 1.1.1u (#105174) 2023-06-01 09:42:18 -07:00
_stat.c gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
_statisticsmodule.c gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
_struct.c [3.13] gh-125118: don't copy arbitrary values to _Bool in the struct module (GH-125169) (#125263) 2024-10-10 14:58:57 +00:00
_suggestions.c gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
_sysconfig.c gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
_testbuffer.c gh-116322: Rename PyModule_ExperimentalSetGIL to PyUnstable_Module_SetGIL (GH-118645) 2024-05-06 18:59:36 +02:00
_testcapi_feature_macros.inc gh-91325: Skip Stable ABI checks with Py_TRACE_REFS special build (GH-92046) 2024-01-29 16:45:31 +01:00
_testcapimodule.c [3.13] gh-122728: Fix SystemError in PyEval_GetLocals() (GH-122735) (#122757) 2024-08-06 23:37:10 +02:00
_testclinic.c [3.13] gh-122688: Fix support of var-positional parameter in Argument Clinic (GH-122689) (#122852) 2024-09-02 13:03:04 +02:00
_testclinic_limited.c gh-116322: Rename PyModule_ExperimentalSetGIL to PyUnstable_Module_SetGIL (GH-118645) 2024-05-06 18:59:36 +02:00
_testexternalinspection.c bpo-115773: Use the right variable name based on the field we are trying read (#118591) 2024-05-07 14:50:41 +00:00
_testimportmultiple.c gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
_testinternalcapi.c [3.13] gh-120838: Add _PyThreadState_WHENCE_FINI (gh-121013) 2024-06-26 15:32:00 -06:00
_testlimitedcapi.c [3.13] gh-111495: Add tests for PyTuple C API (GH-118757) (GH-123371) 2024-08-27 12:07:17 +03:00
_testmultiphase.c gh-116322: Rename PyModule_ExperimentalSetGIL to PyUnstable_Module_SetGIL (GH-118645) 2024-05-06 18:59:36 +02:00
_testsinglephase.c [3.13] gh-123880: Allow recursive import of single-phase-init modules (GH-123950) (#124273) 2024-09-23 12:56:00 -07:00
_threadmodule.c [3.13] gh-117721: use PyMutex in _thread.lock (#125110) (#125116) 2024-10-08 21:16:48 +05:30
_tkinter.c [3.13] gh-125235: Keep _tkinter TCL paths pointing to base installation on Windows (GH-125250) (#125312) 2024-10-11 09:34:04 +00:00
_tracemalloc.c gh-116322: Rename PyModule_ExperimentalSetGIL to PyUnstable_Module_SetGIL (GH-118645) 2024-05-06 18:59:36 +02:00
_typingmodule.c [3.13] gh-123448: Move _PyNoDefault_Type to the static types array (GH-123449) (#123450) 2024-08-28 18:57:28 -07:00
_uuidmodule.c gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
_weakref.c [3.13] gh-120974: Make _asyncio._leave_task atomic in the free-threaded build (GH-122139) (#122186) 2024-07-23 17:30:58 +00:00
_winapi.c [3.13] gh-126433: Fix compiler warnings on 32-bit Windows (#126444) (#126827) 2024-11-14 13:21:27 +01:00
_zoneinfo.c [3.13] gh-125243: Fix ZoneInfo data race in free threading build (GH-125281) (gh-125414) 2024-10-15 17:02:32 -04:00
addrinfo.h gh-95174: WASI: skip missing sockets functions (GH-95179) 2022-07-27 08:19:23 +02:00
arraymodule.c [3.13] gh-121905: Consistently use "floating-point" instead of "floating point" (GH-121907) (GH-122012) 2024-07-19 09:13:08 +00:00
atexitmodule.c gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
binascii.c gh-118314: Fix padding edge case in binascii.a2b_base64 strict mode (GH-118320) 2024-05-07 11:18:45 +02:00
cmathmodule.c gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
config.c.in gh-104169: Fix test_peg_generator after tokenizer refactoring (#110727) 2023-10-12 09:34:35 +02:00
errnomodule.c gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
faulthandler.c [3.13] gh-121905: Consistently use "floating-point" instead of "floating point" (GH-121907) (GH-122012) 2024-07-19 09:13:08 +00:00
fcntlmodule.c [3.13] gh-116622: Don't expose FICLONE ioctl on Android (GH-122522) (#122539) 2024-08-16 16:07:27 +08:00
gc_weakref.txt Fix links to old SF bugs (#95648) 2022-08-04 18:12:35 +02:00
gcmodule.c [3.13] GH-124567: Revert the Incremental GC in 3.13 (#124770) 2024-09-30 21:27:29 +00:00
getaddrinfo.c gh-108767: Replace ctype.h functions with pyctype.h functions (#108772) 2023-09-01 18:36:53 +02:00
getbuildinfo.c gh-106320: Remove private pylifecycle.h functions (#106400) 2023-07-04 09:41:43 +00:00
getnameinfo.c gh-95174: WASI: skip missing sockets functions (GH-95179) 2022-07-27 08:19:23 +02:00
getpath.c [3.13] gh-121103: Put free-threaded libraries in lib/python3.14t (GH-121293) (#121631) 2024-07-11 21:00:28 +00:00
getpath.py [3.13] gh-121103: Put free-threaded libraries in lib/python3.14t (GH-121293) (#121631) 2024-07-11 21:00:28 +00:00
getpath_noop.c bpo-45582: Port getpath[p].c to Python (GH-29041) 2021-12-03 00:08:42 +00:00
grpmodule.c gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
hashlib.h gh-111863: Rename Py_NOGIL to Py_GIL_DISABLED (#111864) 2023-11-20 15:52:00 +02:00
itertoolsmodule.c [3.13] gh-126595: fix a crash when calling itertools.count(sys.maxsize) (GH-126617) (#126739) 2024-11-12 14:14:21 +00:00
ld_so_aix.in Issue #10656: Fix out-of-tree building on AIX 2016-11-20 07:56:37 +00:00
main.c [3.13] gh-121957: Emit audit events for python -i and python -m asyncio (GH-121958) (GH-122115) 2024-07-22 13:36:57 +02:00
makesetup [3.13] gh-116622: Rename build variable MODULE_LDFLAGS back to LIBPYTHON (GH-122764) (GH-122842) 2024-08-09 14:45:04 -07: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 [3.13] gh-123836: workaround fmod(x, y) bug on Windows (GH-124171) (#124187) 2024-09-29 18:14:02 -07:00
md5module.c gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
mmapmodule.c gh-118209: Add Windows structured exception handling to mmap module (GH-118213) 2024-05-10 12:00:00 +01:00
overlapped.c gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
posixmodule.c [3.13] gh-126688: Reinit import lock after fork (GH-126692) (GH-126765) 2024-11-12 22:00:42 +00:00
posixmodule.h gh-85283: Convert grp extension to the limited C API (#116611) 2024-03-12 00:46:53 +00:00
pwdmodule.c gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
pyexpat.c [3.13] GH-119462: Enforce invariants of type versioning. Backport of GH-120731. (#120748) 2024-06-20 15:09:32 +01:00
readline.c gh-116322: Rename PyModule_ExperimentalSetGIL to PyUnstable_Module_SetGIL (GH-118645) 2024-05-06 18:59:36 +02:00
README Issue #18093: Factor out the programs that embed the runtime 2014-07-25 21:52:14 +10:00
resource.c gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
rotatingtree.c [3.13] gh-116181: Remove Py_BUILD_CORE_BUILTIN and Py_BUILD_CORE_MODULE in rotatingtree.c (GH-121260) (#121307) 2024-07-03 07:59:26 +00:00
rotatingtree.h bpo-32150: Expand tabs to spaces in C files. (#4583) 2017-11-28 17:56:10 +02:00
selectmodule.c [3.13] gh-121905: Consistently use "floating-point" instead of "floating point" (GH-121907) (GH-122012) 2024-07-19 09:13:08 +00:00
Setup gh-76785: Rename _xxsubinterpreters to _interpreters (gh-117791) 2024-04-24 16:18:24 +00:00
Setup.bootstrap.in gh-110721: Remove unused code from suggestions.c after moving PyErr_Display to use the traceback module (#113712) 2024-01-08 15:10:45 +00:00
Setup.stdlib.in [3.13] gh-111495: Add tests for PyTuple C API (GH-118757) (GH-123371) 2024-08-27 12:07:17 +03:00
sha1module.c gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
sha2module.c gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
sha3module.c gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
signalmodule.c [3.13] gh-123014: Disable pidfd API on older Android versions (GH-124458) (#124543) 2024-09-26 13:36:12 -07:00
socketmodule.c gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
socketmodule.h gh-110850: Cleanup pycore_time.h includes (#115724) 2024-02-20 16:50:43 +00:00
symtablemodule.c [3.13] gh-119933: Improve `SyntaxError` message for invalid type parameters expressions (GH-119976) (#120641) 2024-06-17 08:01:49 -07:00
syslogmodule.c gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
termios.c gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
timemodule.c [3.13] gh-123978: Remove broken time.thread_time() on NetBSD (GH-124116) (GH-124425) 2024-10-23 19:39:34 +03:00
tkappinit.c gh-103538: Remove unused TK_AQUA code (GH-103539) 2023-05-10 18:53:13 +00:00
tkinter.h gh-103532: Remove TKINTER_PROTECT_LOADTK code (GH-103535) 2023-04-14 09:04:16 -05:00
unicodedata.c gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
unicodedata_db.h gh-96954: Fix make regen-unicodedata in out-of-tree builds (#112118) 2023-11-15 16:42:17 +00:00
unicodename_db.h gh-96954: Fix make regen-unicodedata in out-of-tree builds (#112118) 2023-11-15 16:42:17 +00:00
winreparse.h bpo-31512: Add non-elevated symlink support for Windows (GH-3652) 2019-04-09 11:19:46 -07:00
xxlimited.c gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
xxlimited_35.c gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
xxmodule.c gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
xxsubtype.c gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
zlibmodule.c gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00

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