Python: The Great Attribute Deletion Bug Hunt

Serhiy Storchaka led a sweep of crash fixes across sqlite3, SSL, and ctypes where deleting or setting attributes with invalid values caused segfaults or silent failures. Curses also saw a cluster of fixes to rendering and character-drawing bugs.

Duration: PT2M35S

Episode overview

This episode is a short developer briefing from Python.

It explains recent repository work in plain language.

  • Show: Python
  • Published: 2026-08-21T13:07:58Z
  • Audio duration: PT2M35S

Transcript excerpt

This excerpt keeps the crawler page concise. Listen to the episode or use the RSS feed for the full update.

Good day. It's August 21st, and today's code activity centers on one theme: attribute setters that don't check their inputs before touching memory.

Serhiy Storchaka fixed a run of these across the standard library. In sqlite3, deleting a cursor's row factory, or the connection's autocommit setting, could crash the interpreter or silently swallow an overflow error, covered in PR 152818 and PR 156104, the latter needing a manual backport to 3.13 because the…

Second theme: curses correctness. Three related fixes landed together. Vyron Vasileiadis's PR 155975 stopped a failed write from leaving the wrong rendition applied to a window. Storchaka's PR 155871 fixed border and box drawing rejecting a plain zero character when paired with a string character. And PR 155870…

Elsewhere, Argument Clinic's unrepresentable default bug is getting backported across 3.13, 3.14, and 3.15 in near-identical PRs from lpyu001 and miss-islington, evidence of how much backport traffic one fix generates. Also notable: an open PR from guilhermeleobas adds a new unstable C API for reading interpreter…

What to remember: if you're writing a C-level setter anywhere in CPython, validate before you free or…

Nearby episodes from Python

  1. Argument Clinic Consolidation and Thread-Safety Fixes
  2. Weekly Recap - Crash Fixes and Cleanup Across the C Layer
  3. Data Corruption Fixes and a Cleanup Sweep in Curses and Zlib
  4. Crash Fixes Sweep the Backports
  5. C Attribute Setters Get a Cleanup Pass
  6. Free-Threading Hardens, Backports Sweep the Board
  7. Memory Safety Sweep in CPython Internals
  8. Marshal Module's Bad Week