ZstdDecompressor.copy_stream() crashes when the source's read() returns str
Maintainer antworten meist innerhalb von 3 Tagen
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- Ein halber Tag
- Anfängerfreundlichkeit
- 55/100
Rechercherichtung
The crash is in ZstdDecompressor.copy_stream(), the method on the decompressor class in the C extension. Run the reproducer first to confirm the SIGSEGV, then look at where the value returned by the source's read() is used without a bytes type check. Done means the reproducer raises TypeError instead of crashing, and a regression test covers a text-returning source.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
If the source passed to copy_stream() returns str instead of bytes from read(), e.g., a file opened in text mode, the interpreter crashes with SIGSEGV instead of raising TypeError.
Environment
- zstandard 0.25.0
- Python 3.13.5
Reproducer
import io
import zstandard
class Source:
def __init__(self, chunk):
self.chunks = [chunk]
def read(self, size):
return self.chunks.pop() if self.chunks else b""
zstandard.ZstdDecompressor().copy_stream(Source("data"), io.BytesIO())
Segmentation fault (core dumped)
- Vorherrschende Sprache
- C
- Sterne
- 645
- Forks
- 124
- Ø Merge
- 2 T. 20 Std.
- Gemergte PRs (30 T.)
- 8
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus indygreg/python-zstandard
-
`multi_decompress_to_buffer([])` terminates the process with SIGFPEEvtl. vergeben @mikamikasuki hat das vor 34 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
indygreg/python-zstandard#335 ·
Maintainer antworten meist innerhalb von 3 Tagen
-
Silent data-correctness bug: `readinto()` / `readinto1()` on `stream_reader` return `tell() == 0` after successful readsEvtl. vergeben @CAOShurong hat das vor 28 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
indygreg/python-zstandard#295 ·
Maintainer antworten meist innerhalb von 3 Tagen
-
Stream writers silently lose output when a destination accepts a short writeEvtl. wieder frei Ein Pull Request dazu wurde ohne Merge geschlossen. Offen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 55/100
indygreg/python-zstandard#370 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 3 Tagen
-
CFFI backend: crash when ZstdDecompressor instances share a ZstdCompressionDictEvtl. vergeben @pylaterreur hat das vor 20 Tagen übernommen. Offen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 45/100
indygreg/python-zstandard#361 ·
Maintainer antworten meist innerhalb von 3 Tagen
-
Python 3.15 wheelsEvtl. vergeben Ein verknüpfter Pull Request ist offen oder bereits gemergt. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 55/100
indygreg/python-zstandard#354 · 2 Kommentare · 10 Reaktionen ·
Maintainer antworten meist innerhalb von 3 Tagen
Alle Issues in indygreg/python-zstandard
Ähnliche Issues
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 75/100
ly05010419/MacNativeGames#1796 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
jniebuhr/gaggimate#1009 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
-
Bug :bug:
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
sonic-net/sonic-buildimage#30563 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
llvm/offload-test-suite#1698 ·
Maintainer antworten meist innerhalb von 1 Tag