createrune accepts an empty restriction, after which showrunes crashes lightningd (SIGSEGV)

Đang mở Phù hợp với người mới
#9,673 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 2 ngày

@amartya1523 đang làm issue này rồi.

Từ ngày 3/11/2026.

  • #9685 của @amartya1523 — đang mở

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
78/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
c
Lĩnh vực
backend

Hướng nghiên cứu

Bắt đầu trong lightningd/runes.c, nơi createrune phân tích và chuẩn hóa các restriction, và so sánh cách xử lý [[]] với [[""]] vốn đã bị từ chối. Tái hiện bằng các lệnh regtest, thêm validation từ chối danh sách alternates restriction rỗng, rồi chạy các test liên quan đến rune hoặc luồng regtest để xác nhận createrune trả về cùng lỗi restrictions: not a valid restriction và showrunes không còn crash.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

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.

Ngôn ngữ chính
C
Star
3.1k
Fork
1k
Merge trung bình
4 ngày 7 giờ
Pull request đã merge (30 ngày)
25

Chuẩn bị môi trường

  • Có Dockerfile hoặc tệp Docker Compose
  • Có mẫu pull request
  • Không có hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của ElementsProject/lightning

Tất cả issue của ElementsProject/lightning

Issue tương tự

Thêm issue về C

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.