loop/loopd
Slyghtning e4c4e11627
loopd: nil-guard reservation/instant-out RPC handlers
When loopd is started without --experimental the swap client server's
reservationManager and instantOutManager are nil. ListReservations
already returns codes.Unimplemented in that case; the rest of the
instant-out / reservation RPC family didn't, and would dereference a
nil pointer.

Affected handlers (all of which now return the same Unimplemented
status):

  - ReservationRequest (new in PR #883)
  - ReservationQuote   (new in PR #883)
  - InstantOut
  - InstantOutQuote
  - ListInstantOuts

Without this fix an authenticated caller can crash the daemon by
invoking any of these RPCs against a non-experimental loopd. With
default localhost binding the attack surface is small, but loop is
also commonly fronted by lit / LSP wrappers that expose RPCs to other
internal services, so a single packet is enough for a remote DoS.
2026-08-11 14:57:32 +02:00
..
config.go assets: make tapd macaroon path network-aware 2026-07-18 00:43:17 -05:00
config_test.go assets: make tapd macaroon path network-aware 2026-07-18 00:43:17 -05:00
daemon.go loopd: update reservation cfg 2026-08-11 14:56:59 +02:00
daemon_test.go loopd: test error reporting logic 2025-12-20 06:31:02 +01:00
htlc_confirmed_recovery.go loopd: recover confirmed htlcs with direct sweep 2026-05-29 23:00:29 -05:00
htlc_confirmed_recovery_test.go loopd: recover confirmed htlcs with direct sweep 2026-05-29 23:00:29 -05:00
log.go loopd: add missing debugf logging helper 2026-05-29 23:00:29 -05:00
macaroons.go loopd: move RequiredPermissions to dedicated dir 2022-06-14 15:13:34 +02:00
migration.go loopd: fix data races of logger 2025-03-19 15:00:30 +01:00
register_default.go lint: fix linter issues 2026-03-09 14:39:45 +01:00
run.go loopd: raise minimum lnd version to v0.18.4-beta 2026-06-16 01:12:03 -05:00
static_loopin_status_updater.go staticaddr/loopin: publish status updates after persistence 2026-07-21 11:33:47 -03:00
swapclient_server.go loopd: nil-guard reservation/instant-out RPC handlers 2026-08-11 14:57:32 +02:00
swapclient_server_debug.go make fmt 2022-05-20 10:16:47 +02:00
swapclient_server_deposit_test.go staticaddr: require confirmed deposits for withdraws and channel opens 2026-07-12 09:14:32 +02:00
swapclient_server_staticaddr_test.go loopd: filter static deposit views through active set 2026-07-12 09:14:32 +02:00
swapclient_server_test.go staticaddr/loopin: publish status updates after persistence 2026-07-21 11:33:47 -03:00
sweep_htlc.go loopd: prefer stored destination in sweephtlc 2026-05-29 23:00:29 -05:00
sweep_htlc_test.go loopd: prefer stored destination in sweephtlc 2026-05-29 23:00:29 -05:00
utils.go liquidity: gate static autoloop 2026-05-22 02:32:15 -05:00
view.go loopd: close tapd client connections 2026-08-03 10:05:04 +02:00