python / python/cpython

PyUnstable_Eval_RequestCodeExtraIndex freefunc may be called with a null pointer

Offen
#122,491 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

type-bug
Vorherrschende Sprache
Python
Sterne
77.2k
Forks
35.9k
PR-Merge-Kennzahlen
PR-Kennzahlen ausstehend

Beschreibung

Bug report

Bug description:

The PyUnstable_Code_SetExtra path checks for the previous value being null but code_dealloc does not.

This can lead to freefunc being called with null either through the extra value being explicitly set to null or through a value being set on an extra value with a later index, without a value being set on an earlier index.

This doesn't match the documentation, which says that freefunc is not called for null values.

CPython versions tested on:

3.11, CPython main branch

Operating systems tested on:

Linux

Linked PRs
  • gh-122492

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne in Objects/codeobject.c bei der Prüfung von PyUnstable_Code_SetExtra und dem im Bericht verlinkten code_dealloc-Pfad. Vergleiche beide Pfade mit dem dokumentierten Verhalten bei Nullwerten und prüfe anschließend den verlinkten PR gh-122492 auf die bereits laufenden Arbeiten und deren Validierungsansatz.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
c, python
Bereich
backend
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
20/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.