A JSON body that starts with a brace can be parsed from the middle
評価
調査の方向性
まず HTTPie のソースで load_prefixed_json 関数を見つけ、issue の例を再現します。プレフィックス検索の動作と、存在する場合はその既存のテストを調べます。追加の中括弧で始まる JSON らしい文字列が途中からパースされるのではなく拒否され、一方で while(1); のような有効なプレフィックスは保持されれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Describe the bug
load_prefixed_json('{{"a": 1}') returns the prefix a and the object {"a": 1}. The string is not JSON, and a is not a prefix. while(1);{"a": 1} should still return the prefix while(1); and the object.
The prefix search uses re.findall and then cuts len(match) characters off the front, even when that match does not start at the front.
To Reproduce
from httpie.output.utils import load_prefixed_json
print(load_prefixed_json('{{"a": 1}'))
- 主要言語
- Python
- スター
- 38.8k
- フォーク
- 4k
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
httpie/cli のほかの issue
-
Header formatting reorders repeated fields with mixed capitalization対応中かも @xu91102 が 18 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
-
JSON formatting ignores uppercase and mixed-case Content-Type values対応中かも @xu91102 が 18 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
-
new
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
-
Bug: Windows guard in is_available() compares os.system (a function) to 'nt' — always False対応中かも @yoshibase が 91 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
-
Inconsistent argument parsing behavior across Python versions (< 3.13 vs 3.13+)対応中かも @BetterAndBetterII が 40 日前に担当しました。 オープンbug new
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
似ている issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
Deltares/imod-python#1940 ·
メンテナーはふだん 1 日以内に返信
-
effort: low prio: low ready
難易度 1/5 1時間未満 初心者へのやさしさ 82/100
digitalfabrik/integreat-cms#4621 ·
メンテナーはふだん 5 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
ioos/compliance-checker#1375 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
メンテナーはふだん 1 日以内に返信