python / python/cpython

SIGSEGV in TextIOWrapper.readline() after seek() with cookie containing negative chars_to_skip

Aperta
#153,662 3 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

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

What happened?
import io, sys

COOKIE_VALUE = (100 << (12 * 8)) | (0x80 << (19 * 8))

data = b"Hello World!" * 100
raw = io.BytesIO(data)
buf = io.BufferedReader(raw)
tio = io.TextIOWrapper(buf, encoding='utf-8')

tio.read(20)
tio.seek(COOKIE_VALUE)
tio.readline()

sys.exit(0)

CPython versions tested on:

3.16

Operating systems tested on:

Linux

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

Python 3.16.0a0 (tags/v3.15.0b1-959-gd0714388278:d0714388278, Jul 13 2026, 20:32:55) [GCC 12.3.0] Linux x86_64, GCC 12.3.0

Linked PRs
  • gh-153667

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.

Direzione di ricerca

Inizia eseguendo su Linux il riproduttore Python fornito e ispeziona i punti di ingresso seek() e readline() di io.TextIOWrapper coinvolti nel crash. Il lavoro è completato quando lo stesso cookie non causa più un SIGSEGV e il riproduttore termina normalmente; esamina il PR collegato gh-153667 prima di iniziare, perché il lavoro potrebbe essere già in corso.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
python
Ambito
backend
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.