Potential Integer Overflow in mark_stacks function
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 77.2k
- Forks
- 35.9k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
There is a potential signed integer overflow in the expression:
https://github.com/python/cpython/blob/132b6bc98f47a4d897dead8635b5a50a0baee485/Objects/frameobject.c#L1365
This occurs in the loop:
https://github.com/python/cpython/blob/132b6bc98f47a4d897dead8635b5a50a0baee485/Objects/frameobject.c#L1329
len is derived from a Py_SIZE cast, and it can possibly be INT_MAX:
https://github.com/python/cpython/blob/132b6bc98f47a4d897dead8635b5a50a0baee485/Objects/frameobject.c#L1728-L1730
It means that sum can theoretically exceed INT_MAX if len is near the limit, triggering undefined behavior due to signed integer overflow.
Linked PRs
- gh-132773
- gh-132830
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne in Objects/frameobject.c bei mark_stacks, insbesondere mit der Schleife um Zeile 1329 und dem Ausdruck nahe Zeile 1365; verfolge, wie len in den Zeilen 1728-1730 abgeleitet wird. Als abgeschlossen gilt die Änderung, wenn die Berechnung keinen signed overflow mehr zulässt, wenn len sich INT_MAX nähert, und das Verhalten anhand der verknüpften PRs gh-132773 und gh-132830 überprüft wurde.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- c, python
- Bereich
- compilers
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Klar beschrieben
- Anfängerfreundlichkeit
- 35/100