createrune accepts an empty restriction, after which showrunes crashes lightningd (SIGSEGV)
メンテナーはふだん 2 日以内に返信
評価
調査の方向性
lightningd/runes.c から始めてください。ここでは createrune が restrictions を解析して正規化するので、[[]] の扱いを、すでに拒否されている [[""]] の扱いと比較してください。regtest コマンドで再現し、空の restriction alternates リストを拒否する検証を追加してから、rune 関連のテストまたは regtest フローを実行し、createrune が同じ restrictions: not a valid restriction エラーを返し、showrunes がクラッシュしなくなったことを確認してください。
索引モデルが issue の本文から書いたものです。
説明
Issue and Steps to Reproduce
On a fresh regtest node:
lightning-cli createrune null '[["method=getinfo"],[],["rate=60"]]'
lightning-cli showrunes
createrune accepts the empty restriction ([]) and returns a rune. The next showrunes kills lightningd:
**BROKEN** lightningd: FATAL SIGNAL 11 (version v26.06.7)
The rune is stored, so after a restart every showrunes call crashes lightningd again.
Other malformed restrictions are rejected as expected: [[""]], ["method=getinfo"] and method=getinfo all return restrictions: not a valid restriction. An empty restriction as the last element ([["method=getinfo"],[]]) did not crash in my test.
Expected: createrune rejects a restriction with no alternatives, as it rejects [[""]].
Version
Reproduced on v26.06.7 (the official elementsproject/lightningd:v26.06.7 image) and v26.06.9. lightningd/runes.c on master has no change in this area since.
- 主要言語
- C
- スター
- 3.1k
- フォーク
- 1k
- 平均マージ
- 4日 7時間
- マージ済み PR(30日)
- 25
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートあり
- コントリビューションガイドなし
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
ElementsProject/lightning のほかの issue
-
common/amount: parse_amount_sat misparses sub-satoshi msat with leading zero and accepts invalid suffixes対応中かも @bhuvan-somisetty が 7 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
ElementsProject/lightning#9674 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
ElementsProject/lightning#9671 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
ElementsProject/lightning#9634 ·
メンテナーはふだん 2 日以内に返信
-
plugins/recover: missing comma in nodes_for_gossip concatenates two bootstrap addresses into invalid address対応中かも @bhuvan-somisetty が 19 日前に担当しました。 オープン
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
ElementsProject/lightning#9630 ·
メンテナーはふだん 2 日以内に返信
-
common/json_parse: json_to_bitcoin_amount fails to detect overflow and accepts negative/empty inputs対応中かも @bhuvan-somisetty が 24 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
ElementsProject/lightning#9617 ·
メンテナーはふだん 2 日以内に返信
ElementsProject/lightning の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
meshcore-dev/MeshCore#3760 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
ly05010419/MacNativeGames#1697 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
colbymchenry/codegraph#3228 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
aminya/project_options#303 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 90/100
メンテナーはふだん 1 日以内に返信