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

Ouverte Adaptée aux débutants
#9,673 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 2 jours

@amartya1523 y travaille déjà.

Depuis le 3/11/2026.

  • #9685 par @amartya1523 — ouverte

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
78/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
c
Domaine
backend

Piste de recherche

Commence dans lightningd/runes.c, où createrune analyse et normalise les restrictions, et compare la gestion de [[]] avec celle de [[""]], déjà rejetée. Reproduis avec les commandes regtest, ajoute une validation qui rejette une liste d’alternatives de restriction vide, puis exécute les tests liés aux runes ou le flux regtest pour confirmer que createrune renvoie la même erreur restrictions: not a valid restriction et que showrunes ne plante plus.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

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.

Langage dominant
C
Étoiles
3.1k
Forks
1k
Merge moyen
4 j 7 h
PR mergées (30 j)
25

Préparer son environnement

  • Fournit un Dockerfile ou un fichier Docker Compose
  • Propose un modèle de pull request
  • Aucun guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de ElementsProject/lightning

Toutes les issues de ElementsProject/lightning

Issues similaires

Plus d'issues C

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.