python / python/cpython

Many places have missing `PyErr_NoMemory()` call after failing memory allocation

Aperta
#151,126 2 commenti 0 reazioni 1 assegnatario Vedi su GitHub

@sobolevn ci sta già lavorando.

Dal 9/6/2026.

interpreter-core type-crash
Lingua principale
Python
Stelle
77.2k
Fork
35.9k
Metriche di merge delle PR
Metriche PR in attesa

Descrizione

Crash report

  1. remove_unused_consts in Python/flowgraph.c

When PyMem_Malloc(nconsts * sizeof(Py_ssize_t)); fails, we need to set an exception.

https://github.com/python/cpython/blob/29a920e80e21490b5bdb7178373f80fe606a4403/Python/flowgraph.c#L3267-L3283

  1. gethandlelist and getattributelist in _winapi.c

This place misses it:

https://github.com/python/cpython/blob/9fdbade99e6bcc607d9f12416bfca5bbf94022b9/Modules/_winapi.c#L1196-L1198

All other error paths set exceptions, except this if:

https://github.com/python/cpython/blob/9fdbade99e6bcc607d9f12416bfca5bbf94022b9/Modules/_winapi.c#L1278-L1282

  1. _channelends_new in Modules/_interpchannelsmodule.c

https://github.com/python/cpython/blob/3ca93ab198497da9451101019b67c52e7873377d/Modules/_interpchannelsmodule.c#L920-L926

Later we check for errors in handle_channel_error, it requires either setting err to non -1 or to set Python exception. Both are false, it fails with the assertion failure.

Linked PRs
  • gh-151127
  • gh-151134
  • gh-151135
  • gh-151136
  • gh-151137
  • gh-151154
  • gh-151180
  • gh-151181
  • gh-151182
  • gh-151239
  • gh-151265
  • gh-151266
  • gh-151336
  • gh-151338
  • gh-151339
  • gh-151360
  • gh-151361
  • gh-151362
  • gh-151382
  • gh-151398
  • gh-151399
  • gh-151400
  • gh-151580
  • gh-151582
  • gh-151588
  • gh-151590
  • gh-151624
  • gh-151639
  • gh-152014
  • gh-152015
  • gh-152016
  • gh-152169
  • gh-152170
  • gh-152177
  • gh-152179
  • gh-152180
  • gh-152181
  • gh-152182
  • gh-152183
  • gh-152184
  • gh-152418
  • gh-152420
  • gh-152421
  • gh-152422
  • gh-152478
  • gh-152677
  • gh-152678
  • gh-152720
  • gh-153215
  • gh-153708
  • gh-153709
  • gh-153710
  • gh-153765
  • gh-156292
  • gh-156299
  • gh-156301

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.