Segfault in `ZstdCompressorIterator_iternext` with buffer-protocol data
I maintainer di solito rispondono entro 2 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
Direzione di ricerca
Inizia in compressoriterator.c, in ZstdCompressorIterator_iternext, e analizza il percorso Py_DECREF(self->readResult) quando read_to_iter riceve dati del buffer protocol, come memoryview. Lavora a un piccolo riproduttore per input di grandi dimensioni, quindi verifica che il riproduttore non provochi più un segfault e che l’iterazione completata rimanga sicura.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Hi,
I've been experimenting with passing memoryviews into read_to_iter, and I've been hitting segfaults pretty regularly on large pieces of data.
The offending line is Py_DECREF(self->readResult) in compressoriterator.c. For input data passed in as buffer objects, this pointer (self->readResult) is never not-null.
I've been unable to create a small re-producer which hits these conditions:
if (self->input.pos < self->input.size) {
...
if (self->input.pos == self->input.size) {
...
Py_DECREF(self->readResult);
...
}
But I'll keep trying.
- Lingua principale
- C
- Stelle
- 641
- Fork
- 117
- Merge medio
- 1g 14h
- PR unite (30g)
- 5
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di indygreg/python-zstandard
-
`multi_decompress_to_buffer([])` terminates the process with SIGFPEForse già presa @mikamikasuki l’ha presa 8 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
indygreg/python-zstandard#335 ·
I maintainer di solito rispondono entro 2 giorni
-
Silent data-correctness bug: `readinto()` / `readinto1()` on `stream_reader` return `tell() == 0` after successful readsForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
indygreg/python-zstandard#295 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 64/100
indygreg/python-zstandard#345 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 55/100
indygreg/python-zstandard#334 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 54/100
indygreg/python-zstandard#333 ·
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di indygreg/python-zstandard
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno
-
severity: low
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
luainkernel/lunatik#1853 ·
I maintainer di solito rispondono entro 1 giorno
-
encoding.binary: bounds check guard is compiled away, so decode functions read past the sliceAperta
Difficoltà 2/5 Mezza giornata Idoneità per principianti 70/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
resetes12/pokeemerald#204 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
I maintainer di solito rispondono entro 6 giorni