GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Umbrella issue: bugs found using cpython-review-toolkit · Issue #146102 · python/cpython

Umbrella issue: bugs found using cpython-review-toolkit #146102

New issue
Copy link
New issue
Copy link
Open
35 / 4135 of 41 issues completed
Open
Umbrella issue: bugs found using cpython-review-toolkit#146102
35 / 4135 of 41 issues completed
Copy link
Labels
extension-modulesC modules in the Modules dirC modules in the Modules dirinterpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)type-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or errortype-crashA hard crash of the interpreter, possibly with a core dumpA hard crash of the interpreter, possibly with a core dump

Description

@devdanzin
devdanzin
opened on Mar 18, 2026
Issue body actions

Bug report

What happened?

This is an umbrella issue for 50 select bugs found using cpython-review-toolkit, distributed across ~350K lines of CPython C code (Modules/, Objects/, Python/).

Feel free to work on any report, opening an issue if one doesn't exist yet. Comment with the issue and respective gist/bug here and I'll update the table. If you find an issue listed below that is a duplicate of an existing report, let me know and I'll also mark it in the table.

Modules/ (18 gists)

Gist Description CPython Issue
gist _ssl.c: Py_DECREF(NULL) in SNI callback #146080 FIXED
gist _sqlite: collation assertion + missing PyErr_NoMemory #146090 FIXED
gist functools partial PyDict_Contains -1 as truthy #146075 FIXED
gist _csv.c: _set_str missing NULL check #146093 FIXED
gist _zoneinfo: SEGV in get_weak_cache #146076 FIXED
gist _zoneinfo: missing PyErr_NoMemory in load_data #146092 FIXED
gist termios: NULL to PyLong_AsLong #146091 FIXED
gist _struct: segfault/assertion on uninitialized Struct Fixed in 515ae40
gist pyexpat: ExternalEntityParserCreate crash Fixed in e6b9a14
gist _interpqueuesmodule: use-after-free dangling last #146427
gist selectmodule: errno < 0 always false #146205 FIXED
gist _lsprof: exception clobbering #153068 FIXED
gist deque.copy() ref corruption on OOM #152017
gist readline: begidx NULL on OOM #154385
gist zlibmodule: PyErr_NewException unchecked false alarm
gist socketmodule: audit hook ref/buffer leaks #146245 FIXED
gist _interpchannelsmodule: missing PyErr_NoMemory #150213 FIXED
gist _interpretersmodule: SEGV on create under OOM Fixed in d06113c

Objects/ (13 gists)

Gist Description CPython Issue
gist ExceptionGroup repr OOB — 3-line segfault #146096 FIXED
gist SyntaxError.__init__ ref leaks on re-init #146250 FIXED
gist codeobject: code_richcompare swallows errors #146199 FIXED
gist codeobject: co_tlbc NULL + replacement_locations leak —
gist weakref WRAP_BINARY ref leak (~20 operators) #153058
gist FrameLocalsProxy swallows/overwrites errors —
gist typeobject: missing return -1 in type_ready commit c398490
gist typeobject: buffer leak in slot_bf_getbuffer #151346 FIXED
gist object.c: PyObject_Print missing LeaveRecursiveCall commit e2fa10e
gist structseq: get_type_attr_as_size NULL deref #148119 FIXED
gist genericaliasobject: two NULL dereference bugs #148226 FIXED
gist odictobject: spurious PyErr_Clear #151347 FIXED
gist unicode_format: wrong return + PY_SSIZE_T_MIN UB #151845 #151847

Python/ (16 gists)

Gist Description CPython Issue
gist import.c: wrong interpreter + double lock release #150454 #150374 FIXED
gist instrumentation.c: PyLong leak per monitoring call #150379 FIXED
gist instrumentation.c: use-after-Py_DECREF comparison #151524
gist ceval.c: missing PyErr_NoMemory + PyEval_GetLocals NULL #153205 FIXED
gist bltinmodule: __lazy_import__ NULL deref #151510 FIXED
gist crossinterp: UAF + leaked exception + shadowed var —
gist compiler pipeline: 6 ref leaks and error bugs #146442 FIXED
gist marshal: 8 refs leaked on corrupt TYPE_CODE #148418 FIXED
gist pylifecycle: 5 init/fini cleanup bugs —
gist initconfig: SET_ITEM macro leaks dict #146244 FIXED
gist ast.c: LEAVE_RECURSIVE missing on 30 paths —
gist hamt.c: sub_node leaked in bitmap ops #150178
gist pythonrun: main_module ref leak #146355 FIXED
gist modsupport: missing va_end (UB) #146386 FIXED
gist legacy_tracing: unchecked PyLong_AsInt #153622
gist optimizer_symbols: make_bottom NULL deref #146388 FIXED

Duplicates (3 gists — same bugs uploaded from different runs)

Gist Duplicate of
gist ExceptionGroup repr (dup of dceaa8b7)
gist sqlite collation (dup of 69aff7ff)
gist SSL SNI (dup of 50f98806)

These issues were found with Claude Opus 4.6, using the /cpython-review-toolkit:explore [file or directory] all deep command.

CPython versions tested on:

CPython main branch

Operating systems tested on:

Linux

Output from running 'python -VV' on the command line:

Python 3.15.0a7+ (heads/main:e0f7c1097e1, Mar 17 2026, 18:10:52) [Clang 21.1.2 (2ubuntu6)]

Linked PRs

  • gh-146442: Fix various bugs in compiler pipeline from bug report #146443
  • gh-146102: Catch PyErr_NewException() failure in zlib #151342
  • gh-146102: Fix type slot_bf_getbuffer() error handling #151346
  • gh-146102: Don't clear exception on success in odictobject.c #151347
  • gh-146102: Avoid possibe memory leak in pylifecycle.c #151534
  • gh-146102:Fix cross-interpreter NotShareableError ref handling #151578
  • gh-146102: Fix use-after-free and exception leak in crossinterp subsystem #154278
Reacted by Kirill Podoprigora, Sergey Miryanov, Brij Kapadia, Wulian233, An Long, Brandon, Yongtao Huang and sunmy2019

Activity

Next
  1. devdanzin
    added
    type-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error
    interpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)
    extension-modulesC modules in the Modules dirC modules in the Modules dir
    type-crashA hard crash of the interpreter, possibly with a core dumpA hard crash of the interpreter, possibly with a core dump
    on Mar 18, 2026
  2. serhiy-storchaka
    added sub-issues on Mar 18, 2026
    • Segfault from Py_DECREF(NULL) in _servername_callback error label in _ssl.c #146080
    • Assertion failure in free_callback_context via create_collation and missing PyErr_NoMemory in create_callback_context #146090
    • Assertion failure from functools.partial using a str subclass that raises on __eq__ #146075
    • _set_str missing NULL check after PyUnicode_DecodeASCII in _csv.c #146093
    • Segfault from NULL dereference in _zoneinfo.get_weak_cache #146076
    • Missing PyErr_NoMemory in _zoneinfo load_data and ts_to_local #146092
    • SystemError from termios.tcsetwinsizepassing NULL to PyLong_AsLong #146091
    • Out-of-bounds tuple access in BaseExceptionGroup_repr #146096
  3. aisk
    added a sub-issue on Mar 20, 2026
    • selectmodule.c: errno < 0 comparison is always false #146205
  4. StanFromIreland
    added a sub-issue on Mar 20, 2026
    • code_richcompare swallows errors #146199
  5. aisk
    added a sub-issue on Mar 21, 2026
    • socketmodule.c: Reference and buffer leaks via audit hook failures #146245
  6. 25 remaining items

  7. philthompson10
    added a commit that references this issue on Jun 17, 2026

    pythongh-146102: Fix type slot_bf_getbuffer() error handling (python#…

    d440325
  8. aisk
    added sub-issues on Jun 21, 2026
    • formatfloat wrong return in unicode_format.c #151845
    • PY_SSIZE_T_MIN negate UB in unicode_format.c and bytesobject.c #151847
  9. StanFromIreland
    added sub-issues on Jun 27, 2026
    • deque_clear clears MemoryError #152017
    • Memory leak in initialization of readline during OOM #152398
  10. aisk
    added sub-issues on Jul 13, 2026
    • weakrefobject.c: binary, ternary, or comparison operations ref leak with dead proxy #153058
    • import_run_extension() can return on the wrong interpreter after _PyUnicode_Copy() failure #150454
    • Double release of import lock in _PyImport_LoadLazyImportTstate on PySet_Add failure #150374
    • _lsprof.c: Profiler.enable() clobbers exception from use_tool_id #153068
    • ceval.c: missing PyErr_NoMemory + PyEval_GetLocals NULL #153205
    • legacy_tracing.c: Unchecked PyLong_AsInt in tracing callbacks #153622
    • Reference leak in capi_call_instrumentation() for non-LINE monitoring events #150379
    • crossinterp.c: Use-after-free + leaked exception + shadowed variable #153664
  11. aisk
    added a sub-issue on Jul 21, 2026
    • readline.c: Missing NULL check on PyLong_FromLong #154385
  12. lpyu001 commented on Jul 24, 2026

    @lpyu001
    lpyu001
    on Jul 24, 2026
    Contributor
    More actions

    PR #150549 fixs "codeobject: co_tlbc NULL + replacement_locations leak” fixed

    PR #153421 fixs “FrameLocalsProxy swallows/overwrites errors”

    PR #151578 fixs “crossinterp: UAF + leaked exception + shadowed var”

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    extension-modulesC modules in the Modules dirC modules in the Modules dirinterpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)type-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or errortype-crashA hard crash of the interpreter, possibly with a core dumpA hard crash of the interpreter, possibly with a core dump

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      You are visitor 01402503 — GeezerVison does not store the pages you look up.
      Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.