cln/plugins
Rusty Russell 703d737dd5 xpay: don't crash on circular routehints.
We earlier fixed the cases of gossipd inserting a same-node channel,
but didn't prevent it for local modifications:

```
cln-askrene: common/gossmap.c:52: nodeidx_htable_add: Assertion `!nodeidx_htable_getmatch_(ht, k, h, v, &i)' failed.
cln-askrene: FATAL SIGNAL 6 (version v26.06rc2-5-gd389c3f-modded)
0x5c50e80dd5cb send_backtrace
        common/daemon.c:38
0x5c50e80dd685 crashdump
        common/daemon.c:83
0x70a5b1e4532f ???
        ./signal/../sysdeps/unix/sysv/linux/x86_64/libc_sigaction.c:0
0x70a5b1e9eb2c __pthread_kill_implementation
        ./nptl/pthread_kill.c:44
0x70a5b1e9eb2c __pthread_kill_internal
        ./nptl/pthread_kill.c:78
0x70a5b1e9eb2c __GI___pthread_kill
        ./nptl/pthread_kill.c:89
0x70a5b1e4527d __GI_raise
        ../sysdeps/posix/raise.c:26
0x70a5b1e288fe __GI_abort
        ./stdlib/abort.c:79
0x70a5b1e2881a __assert_fail_base
        ./assert/assert.c:96
0x70a5b1e3b516 __assert_fail
        ./assert/assert.c:105
0x5c50e80dfb44 nodeidx_htable_add
        common/gossmap.c:52
0x5c50e80e1066 add_channel
        common/gossmap.c:515
0x5c50e80e327c gossmap_apply_localmods
        common/gossmap.c:1239
0x5c50e80bed55 do_getroutes
        plugins/askrene/askrene.c:620
0x5c50e80bf919 listpeerchannels_done
```

Reported-by: Won Hoi Kim and Ahmad Elmoursi
Changelog-Fixed: Plugins: xpay no longer crashes on circular bolt11 routehints.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2026-06-01 11:40:01 +02:00
..
askrene xpay: don't crash on circular routehints. 2026-06-01 11:40:01 +02:00
bip353-plugin crates: formatting with new 2024 edition rules 2026-04-24 15:48:06 +02:00
bkpr common: expose json_hex_to_be32/be64 2026-05-11 15:51:05 +09:30
bwatch bwatch: gate chain polling behind --experimental-bwatch 2026-05-11 15:51:05 +09:30
currencyrate-plugin currencyrate: added README 2026-05-11 15:06:41 +02:00
examples crates: formatting with new 2024 edition rules 2026-04-24 15:48:06 +02:00
grpc-plugin crates: bump cln-rpc, cln-grpc and cln-plugin to v0.7.0 for release 2026-05-25 17:32:59 +02:00
lsps-plugin lsps: remove unmaintained crate paste 2026-04-24 19:38:53 +02:00
renepay renepay: skip channels disabled in gossmap 2026-05-18 15:34:59 +02:00
rest-plugin crates: upgraded dependencies to latest 1.85 compatible versions as of the commit time 2026-04-24 19:38:53 +02:00
spender splice-script: Round channel balances down 2026-04-29 11:43:27 +09:30
src cln-plugin: add support for structured logging dependencies 2026-04-24 19:38:36 +02:00
test offers: add createproof API. 2026-05-11 11:13:55 +09:30
wss-proxy-plugin crates: upgraded dependencies to latest 1.85 compatible versions as of the commit time 2026-04-24 19:38:53 +02:00
xpay xpay: don't crash on circular routehints. 2026-06-01 11:40:01 +02:00
.gitignore gitignore: add bwatch 2026-05-18 11:29:50 +09:30
autoclean.c plugins: simplify datastore interfaces now callers have mkdatastorekey. 2026-03-23 14:03:17 +10:00
bcli.c bcli: replace magic numbers with constants 2026-02-18 14:16:29 +10:00
Cargo.toml crates: bump cln-rpc, cln-grpc and cln-plugin to v0.7.0 for release 2026-05-25 17:32:59 +02:00
chanbackup.c chanbackup: Store the latest recvd peer storage only 2026-05-07 12:36:26 +10:00
channel_hint.c bitcoin: hash_scid and hash_scidd public functions. 2026-02-19 17:04:35 +10:30
channel_hint.h bitcoin: hash_scid and hash_scidd public functions. 2026-02-19 17:04:35 +10:30
commando.c common: implement tal_arr_append and tal_arr_appendn, and use them. 2026-05-11 13:51:52 +09:30
establish_onion_path.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
establish_onion_path.h global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
exposesecret.c ccan: update to get improved grab_file API, and adapt code. 2025-10-26 12:37:58 +10:30
fetchinvoice.c common/bolt12: use a const char * for fail reason. 2026-05-11 11:13:55 +09:30
fetchinvoice.h plugins: cancelrecurringinvoice command. 2025-10-01 15:31:30 +09:30
funder.c libplugin: hand command, not plugin, to parsing functions. 2026-03-23 14:03:17 +10:00
funder_policy.c libplugin: hand command, not plugin, to parsing functions. 2026-03-23 14:03:17 +10:00
funder_policy.h libplugin: hand command, not plugin, to parsing functions. 2026-03-23 14:03:17 +10:00
keysend.c keysend: deprecate in favor of xkeysend. 2026-05-11 13:51:52 +09:30
libplugin-pay.c common: add tal_free_if_taken() helper for common case. 2026-03-29 14:35:54 +10:30
libplugin-pay.h connectd, gossipd, pay, bcli: use timemono when solely measuring duration for timeouts. 2025-11-13 21:21:29 +10:30
libplugin.c libplugin: expose json_add_keypath. 2026-05-11 15:51:05 +09:30
libplugin.h libplugin: expose json_add_keypath. 2026-05-11 15:51:05 +09:30
Makefile bwatch: add wire format 2026-05-11 15:51:05 +09:30
offers.c offers: add createproof API. 2026-05-11 11:13:55 +09:30
offers.h offers: use amount hints in find_best_peer for blinded paths. 2026-04-02 10:36:10 +10:30
offers_inv_hook.c offers: use xpay. 2026-05-11 13:51:52 +09:30
offers_inv_hook.h offers: check they use the blinded path if one is specified. 2024-07-17 10:57:11 +02:00
offers_invreq_hook.c common/bolt12: use a const char * for fail reason. 2026-05-11 11:13:55 +09:30
offers_invreq_hook.h offers: check they use the blinded path if one is specified. 2024-07-17 10:57:11 +02:00
offers_offer.c Fix C comments which will accidentally trigger Python BOLT quote checker. 2026-04-30 12:17:43 +09:30
offers_offer.h plugins: move fetchinvoice functionality into offers plugin. 2024-07-17 10:57:11 +02:00
offers_proof.c offers: add createproof API. 2026-05-11 11:13:55 +09:30
offers_proof.h offers: add createproof API. 2026-05-11 11:13:55 +09:30
pay.c plugins: move listpays from pay plugin to xpay plugin. 2026-05-11 13:51:52 +09:30
README.md doc: fix wording in plugins/README.md 2020-01-06 12:57:59 +01:00
recklessrpc.c reckless: fail reckless rpc if executable fails 2026-03-18 14:11:01 +01:00
recover.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
sql.c sql: fix crash for large channelmoves tables. 2026-04-09 12:12:39 +09:30
topology.c getroute: deprecate in favor of getroutes 2026-05-11 13:51:52 +09:30
txprepare.c fix: release txprepare reservations on send failure 2026-05-11 15:54:55 +09:30

Plugin Directory

Any file in this directory which is executable and whose name only consists of alphanumeric characters, space, '.', '-' or '_' will be automatically loaded when lightningd starts (unless suppressed with commandline options).