Segfault in `ZstdCompressorIterator_iternext` with buffer-protocol data
メンテナーはふだん 4 日以内に返信
評価
調査の方向性
compressoriterator.c の ZstdCompressorIterator_iternext から始め、read_to_iter が memoryview などの buffer protocol のデータを受け取ったときの Py_DECREF(self->readResult) の経路を調べてください。大きな入力向けの小さな再現プログラムを作成し、その後、その再現プログラムで segfault が発生しなくなったことと、反復処理の完了後も安全であることを確認してください。
索引モデルが issue の本文から書いたものです。
説明
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.
- 主要言語
- C
- スター
- 641
- フォーク
- 117
- 平均マージ
- 8日 2時間
- マージ済み PR(30日)
- 7
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
indygreg/python-zstandard のほかの issue
-
`multi_decompress_to_buffer([])` terminates the process with SIGFPE対応中かも @mikamikasuki が 11 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
indygreg/python-zstandard#335 ·
メンテナーはふだん 4 日以内に返信
-
Silent data-correctness bug: `readinto()` / `readinto1()` on `stream_reader` return `tell() == 0` after successful reads対応中かも @CAOShurong が 4 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
indygreg/python-zstandard#295 ·
メンテナーはふだん 4 日以内に返信
-
Python 3.15 wheels対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 55/100
indygreg/python-zstandard#354 · リアクション 1 件 ·
メンテナーはふだん 4 日以内に返信
-
難易度 3/5 1〜2日 初心者へのやさしさ 64/100
indygreg/python-zstandard#345 ·
メンテナーはふだん 4 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 55/100
indygreg/python-zstandard#334 ·
メンテナーはふだん 4 日以内に返信
indygreg/python-zstandard の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
メンテナーはふだん 4 日以内に返信
-
難易度 2/5 半日 初心者へのやさしさ 62/100
メンテナーはふだん 1 日以内に返信
-
foomatic-rip: dstrtrim_right() underflows mid-loop on an all-whitespace string対応中かも @ManasBagul23 が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
OpenPrinting/cups-filters#759 ·
メンテナーはふだん 11 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
EchoTools/nevr-runtime#547 ·
メンテナーはふだん 1 日以内に返信
-
bug good first issue
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100