cpython/Python
mpage d7bb7c7817
gh-118331: Fix a couple of issues when list allocation fails (#130811)
* Fix use after free in list objects

Set the items pointer in the list object to NULL after the items array
is freed during list deallocation. Otherwise, we can end up with a list
object added to the free list that contains a pointer to an already-freed
items array.

* Mark `_PyList_FromStackRefStealOnSuccess` as escaping

I think technically it's not escaping, because the only object that
can be decrefed if allocation fails is an exact list, which cannot
execute arbitrary code when it is destroyed. However, this seems less
intrusive than trying to special cases objects in the assert in `_Py_Dealloc`
that checks for non-null stackpointers and shouldn't matter for performance.
2025-03-05 10:42:09 -08:00
..
clinic gh-129889: Support context manager protocol by contextvars.Token (#129888) 2025-02-12 12:32:58 +01:00
frozen_modules
_warnings.c gh-130163: Fix crashes related to PySys_GetObject() (GH-130503) 2025-02-25 23:04:27 +02:00
asdl.c
asm_trampoline.S gh-120400 :Support Linux perf profile to see Python calls on RISC-V architecture (#120089) 2024-06-12 14:24:46 +01:00
assemble.c docs: internal notes have moved, correct references (#130762) 2025-03-03 06:38:49 -05:00
ast.c GH-130396: Use computed stack limits on linux (GH-130398) 2025-02-25 09:24:48 +00:00
ast_opt.c GH-130396: Use computed stack limits on linux (GH-130398) 2025-02-25 09:24:48 +00:00
ast_unparse.c gh-119182: Use public PyUnicodeWriter in ast_unparse.c (#129208) 2025-01-23 01:44:43 +01:00
bltinmodule.c gh-130163: Fix crashes related to PySys_GetObject() (GH-130503) 2025-02-25 23:04:27 +02:00
bootstrap_hash.c gh-121199: Use _Py__has_attribute() in timemodule.c (#121203) 2024-07-01 08:49:33 +00:00
brc.c Fix typos in documentation and comments (#119763) 2024-06-04 10:22:22 +00:00
bytecodes.c GH-130296: Avoid stack transients in four instructions. (GH-130310) 2025-02-28 18:00:38 +00:00
ceval.c gh-130163: Fix crashes related to PySys_GetObject() (GH-130503) 2025-02-25 23:04:27 +02:00
ceval_gil.c gh-130605: Use relaxed atomics to set the GIL switch interval (gh-130654) 2025-02-28 09:27:18 -05:00
ceval_macros.h gh-129989: Properly disable tailcall interp in configure (GH-129991) 2025-02-16 03:01:24 +08:00
codecs.c gh-130790: Remove references about unicode's readiness from comments (#130801) 2025-03-03 19:18:09 +00:00
codegen.c gh-130740: Move some stdbool.h includes after Python.h (#130738) 2025-03-02 09:56:49 +00:00
compile.c Postpone <stdbool.h> inclusion after Python.h (#130641) 2025-02-28 10:09:27 +01:00
condvar.h
config_common.h
context.c gh-129889: Support context manager protocol by contextvars.Token (#129888) 2025-02-12 12:32:58 +01:00
critical_section.c gh-114203: Optimise simple recursive critical sections (#128126) 2024-12-23 13:31:33 +01:00
crossinterp.c gh-128911: Use PyImport_ImportModuleAttr() function (#129657) 2025-02-05 11:03:58 +01:00
crossinterp_data_lookup.h gh-76785: Improved Subinterpreters Compatibility with 3.12 (2/2) (gh-126707) 2024-11-12 10:41:51 -07:00
crossinterp_exceptions.h gh-76785: Minor Cleanup of Exception-related Cross-interpreter State (gh-126602) 2024-11-11 14:49:41 -07:00
dtoa.c gh-121040: Use __attribute__((fallthrough)) (#121044) 2024-06-27 09:58:44 +00:00
dup2.c
dynamic_annotations.c
dynload_hpux.c
dynload_shlib.c
dynload_stub.c
dynload_win.c
emscripten_signal.c
emscripten_trampoline.c gh-128627: Skip wasm-gc on iOS Safari where it's broken (#130418) 2025-02-24 07:26:04 +08:00
errors.c gh-130163: Fix crashes related to PySys_GetObject() (GH-130503) 2025-02-25 23:04:27 +02:00
executor_cases.c.h gh-118331: Fix a couple of issues when list allocation fails (#130811) 2025-03-05 10:42:09 -08:00
fileutils.c gh-128863: Deprecate private C API functions (#128864) 2025-01-22 11:04:19 +00:00
flowgraph.c gh-130740: Move some stdbool.h includes after Python.h (#130738) 2025-03-02 09:56:49 +00:00
formatter_unicode.c gh-130790: Remove references about unicode's readiness from comments (#130801) 2025-03-03 19:18:09 +00:00
frame.c GH-128563: Add new frame owner type for interpreter entry frames (GH-129078) 2025-01-21 10:15:02 +00:00
frozen.c GH-89435: os.path should not be a frozen module (#126924) 2024-11-22 18:50:30 +00:00
frozenmain.c
future.c gh-126139: Improve error message location for future statement with unknown feature (#126140) 2024-10-29 23:57:59 +00:00
gc.c gh-130019: Fix data race in _PyType_AllocNoTrack (gh-130058) 2025-02-13 11:50:45 -05:00
gc_free_threading.c gh-130019: Fix data race in _PyType_AllocNoTrack (gh-130058) 2025-02-13 11:50:45 -05:00
gc_gil.c gh-100240: Use a consistent implementation for freelists (#121934) 2024-07-22 12:08:27 -04:00
generated_cases.c.h gh-118331: Fix a couple of issues when list allocation fails (#130811) 2025-03-05 10:42:09 -08:00
getargs.c gh-122943: Add the varpos parameter in _PyArg_UnpackKeywords (GH-126564) 2024-11-08 14:23:50 +02:00
getcompiler.c
getcopyright.c gh-126133: Only use start year in PSF copyright, remove end years (#126236) 2024-11-12 15:59:19 +02:00
getopt.c Make the Python CLI error message style more consistent (GH-128129) 2025-01-11 11:17:35 +02:00
getplatform.c
getversion.c
hamt.c gh-111178: fix UBSan failures in Python/hamt.c (GH-128247) 2025-01-08 14:50:40 +01:00
hashtable.c
import.c gh-130163: Fix crashes related to PySys_GetObject() (GH-130503) 2025-02-25 23:04:27 +02:00
importdl.c gh-122907: Fix Builds Without HAVE_DYNAMIC_LOADING Set (gh-122952) 2024-08-13 14:44:57 -06:00
index_pool.c gh-130740: Move some stdbool.h includes after Python.h (#130738) 2025-03-02 09:56:49 +00:00
initconfig.c gh-130163: Fix crashes related to PySys_GetObject() (GH-130503) 2025-02-25 23:04:27 +02:00
instruction_sequence.c gh-130740: Move some stdbool.h includes after Python.h (#130738) 2025-03-02 09:56:49 +00:00
instrumentation.c GH-128534: Instrument branches for async for loops. (GH-130569) 2025-02-27 09:36:41 +00:00
interpconfig.c
intrinsics.c gh-130163: Fix crashes related to PySys_GetObject() (GH-130503) 2025-02-25 23:04:27 +02:00
jit.c GH-129231: Group executable JIT code in memory (GH-129232) 2025-02-02 15:19:55 -08:00
legacy_tracing.c gh-128360: Add _Py_AssertHoldsTstate as assertion for holding a thread state (#128361) 2025-01-20 17:04:35 +05:30
lock.c gh-125139: use _PyRecursiveMutex in _thread.RLock (#125144) 2024-10-14 14:06:31 +05:30
marshal.c gh-127936, PEP 757: Convert marshal module to use import/export API for ints (#128530) 2025-01-23 02:54:23 +00:00
modsupport.c bpo-45325: Add a new 'p' parameter to Py_BuildValue to convert an integer into a Python bool (#28634) 2025-02-18 17:14:11 +00:00
mysnprintf.c
mystrtoul.c
object_stack.c gh-100240: Use a consistent implementation for freelists (#121934) 2024-07-22 12:08:27 -04:00
opcode_targets.h GH-128534: Instrument branches for async for loops. (GH-130569) 2025-02-27 09:36:41 +00:00
optimizer.c GH-130296: Avoid stack transients in four instructions. (GH-130310) 2025-02-28 18:00:38 +00:00
optimizer_analysis.c GH-130415: Use boolean guards to narrow types to values in the JIT (GH-130659) 2025-03-02 13:21:34 -08:00
optimizer_bytecodes.c GH-130415: Narrow str to "" based on boolean tests (GH-130476) 2025-03-04 13:20:17 -08:00
optimizer_cases.c.h GH-130415: Narrow str to "" based on boolean tests (GH-130476) 2025-03-04 13:20:17 -08:00
optimizer_symbols.c GH-130415: Narrow str to "" based on boolean tests (GH-130476) 2025-03-04 13:20:17 -08:00
parking_lot.c gh-76785: Improved Subinterpreters Compatibility with 3.12 (1/2) (gh-126704) 2024-11-11 15:58:46 -07:00
pathconfig.c gh-111924: Fix data races when swapping allocators (gh-130287) 2025-02-20 11:31:15 -05:00
perf_jit_trampoline.c
perf_trampoline.c gh-115999: Enable specialization of CALL instructions in free-threaded builds (#127123) 2024-12-03 11:20:20 -08:00
preconfig.c
pyarena.c Chore: Fix typo in pyarena.c (#126527) 2024-11-07 16:37:41 +01:00
pyctype.c
pyfpe.c
pyhash.c gh-122854: Add Py_HashBuffer() function (#122855) 2024-08-30 15:42:27 +00:00
pylifecycle.c gh-130163: Fix crashes related to PySys_GetObject() (GH-130503) 2025-02-25 23:04:27 +02:00
pymath.c
pystate.c GH-127705: better double free message. (GH-130785) 2025-03-05 14:00:42 +00:00
pystrcmp.c
pystrhex.c
pystrtod.c gh-120026: soft deprecate Py_HUGE_VAL macro (#120027) 2024-11-01 22:04:31 +00:00
Python-ast.c GH-130396: Use computed stack limits on linux (GH-130398) 2025-02-25 09:24:48 +00:00
Python-tokenize.c gh-115754: Use Py_GetConstant(Py_CONSTANT_EMPTY_STR) (#125194) 2024-10-09 17:15:23 +02:00
pythonrun.c Postpone <stdbool.h> inclusion after Python.h (#130641) 2025-02-28 10:09:27 +01:00
pytime.c gh-130421: Fix data race on timebase initialization (gh-130592) 2025-02-27 13:27:54 +00:00
qsbr.c gh-130794: Process interpreter QSBR queue in _PyMem_AbandonDelayed. (gh-130808) 2025-03-04 18:04:04 -05:00
README
specialize.c gh-100239: replace BINARY_SUBSCR & family by BINARY_OP with oparg NB_SUBSCR (#129700) 2025-02-07 22:39:54 +00:00
stackrefs.c GH-127705: better double free message. (GH-130785) 2025-03-05 14:00:42 +00:00
stdlib_module_names.h gh-126925: Modify how iOS test results are gathered (#127592) 2024-12-09 13:28:57 +08:00
structmember.c gh-117657: TSAN Fix races in PyMember_Get and PyMember_Set for C extensions (GH-123211) 2024-12-03 09:41:53 -05:00
suggestions.c Fixes loop variables to be the same types as their limit (GH-120958) 2024-06-24 17:11:47 +01:00
symtable.c gh-111178: Fix function signatures in symtable.c (#130589) 2025-02-26 21:35:24 +01:00
sysmodule.c gh-130163: Fix crashes related to PySys_GetObject() (GH-130503) 2025-02-25 23:04:27 +02:00
thread.c
thread_nt.h gh-87135: Hang non-main threads that attempt to acquire the GIL during finalization (GH-105805) 2024-10-02 09:17:49 -07:00
thread_pthread.h gh-87135: Hang non-main threads that attempt to acquire the GIL during finalization (GH-105805) 2024-10-02 09:17:49 -07:00
thread_pthread_stubs.h gh-125161: return non zero value in pthread_self on wasi (#125303) 2024-10-13 20:59:41 +05:30
tier2_engine.md
traceback.c gh-130163: Fix crashes related to PySys_GetObject() (GH-130503) 2025-02-25 23:04:27 +02:00
tracemalloc.c gh-130790: Remove references about unicode's readiness from comments (#130801) 2025-03-03 19:18:09 +00:00
uniqueid.c gh-128923: Use zero to indicate unassigned unique id (#128925) 2025-01-17 16:42:27 +01:00
vm-state.md Fix typos in documentation and comments (#119763) 2024-06-04 10:22:22 +00:00

Miscellaneous source files for the main Python shared library