rgb-cln/lightningd
Rusty Russell 07c4d39b75 memleak: fix double-free if we timeout.
... and then dualopend returns, and we access the fread leak_detect struct.

```
lightningd: FATAL SIGNAL 6 (version 065ca1e)
0x55ecd4be8145 send_backtrace
	common/daemon.c:33
0x55ecd4be81f1 crashdump
	common/daemon.c:46
0x7f200acab51f ???
	./signal/../sysdeps/unix/sysv/linux/x86_64/libc_sigaction.c:0
0x7f200acff828 __pthread_kill_implementation
	./nptl/pthread_kill.c:44
0x7f200acff828 __pthread_kill_internal
	./nptl/pthread_kill.c:80
0x7f200acff828 __GI___pthread_kill
	./nptl/pthread_kill.c:91
0x7f200acab475 __GI_raise
	../sysdeps/posix/raise.c:26
0x7f200ac917b6 __GI_abort
	./stdlib/abort.c:79
0x55ecd4c6827f call_error
	ccan/ccan/tal/tal.c:93
0x55ecd4c68470 check_bounds
	ccan/ccan/tal/tal.c:165
0x55ecd4c684c2 to_tal_hdr
	ccan/ccan/tal/tal.c:175
0x55ecd4c68eb8 tal_free
	ccan/ccan/tal/tal.c:479
0x55ecd4b8bdd0 finish_report
	lightningd/memdump.c:138
0x55ecd4b8c115 leak_detect_req_done
	lightningd/memdump.c:201
0x55ecd4c68664 notify
	ccan/ccan/tal/tal.c:237
0x55ecd4c68b9e del_tree
	ccan/ccan/tal/tal.c:402
0x55ecd4c68bf3 del_tree
	ccan/ccan/tal/tal.c:412
0x55ecd4c68bf3 del_tree
	ccan/ccan/tal/tal.c:412
0x55ecd4c68f43 tal_free
	ccan/ccan/tal/tal.c:486
0x55ecd4c5751f io_close
	ccan/ccan/io/io.c:450
0x55ecd4bbce68 subd_shutdown_remaining
	lightningd/subd.c:911
0x55ecd4b8724a shutdown_subdaemons
	lightningd/lightningd.c:541
0x55ecd4b883cc main
	lightningd/lightningd.c:1207
0x7f200ac92fcf __libc_start_call_main
	../sysdeps/nptl/libc_start_call_main.h:58
0x7f200ac9307c __libc_start_main_impl
	../csu/libc-start.c:409
0x55ecd4b5cc54 ???
```

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2022-03-23 13:20:12 +10:30
..
test lightningd: don't tell connectd to discard peer unless no subds left. 2022-03-23 13:20:12 +10:30
.gitignore Ignore all the deamon inside the git history 2021-10-28 15:51:38 +02:00
Makefile hsmd: Augment call to hsmd_sign_withdrawal_tx with wallet index metadata 2022-03-10 10:22:29 +10:30
bitcoind.c database: pull out database code into a new module 2022-03-05 15:03:34 +10:30
bitcoind.h common: use bitcoin_outpoint. 2021-10-15 12:09:36 +02:00
chaintopology.c database: pull out database code into a new module 2022-03-05 15:03:34 +10:30
chaintopology.h cleanup: remove unneeded includes in header files. 2021-09-17 09:43:22 +09:30
channel.c lightningd: don't tell connectd to discard peer unless no subds left. 2022-03-23 13:20:12 +10:30
channel.h lightningd: use a better channel if available to next hop. 2022-03-23 13:20:12 +10:30
channel_control.c lightningd: remove (most) functions to search channels by status. 2022-03-23 13:20:12 +10:30
channel_control.h lightningd: handle reestablish directly from connectd. 2022-03-23 13:20:12 +10:30
channel_state.h channel-state: add two new states, for dualopend 2021-01-10 13:44:04 +01:00
closing_control.c lightningd: remove (most) functions to search channels by status. 2022-03-23 13:20:12 +10:30
closing_control.h patch lightningd-peer-fds.patch 2022-01-20 15:24:06 +10:30
coin_mvts.c balance_snapshot: don't count unconfirmed utxos 2022-03-05 15:12:12 +10:30
coin_mvts.h coin_mvt: tiny, dont import lightningd header 2022-02-07 13:02:09 +10:30
connect_control.c lightningd: don't tell connectd to discard peer unless no subds left. 2022-03-23 13:20:12 +10:30
connect_control.h lightningd: don't tell connectd to discard peer unless no subds left. 2022-03-23 13:20:12 +10:30
datastore.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
dual_open_control.c lightningd: remove checks which prevent us from opening multiple channels. 2022-03-23 13:20:12 +10:30
dual_open_control.h connectd: hold peer until we're interested. 2022-03-23 13:20:12 +10:30
gossip_control.c gossipd: send updated node_annoucement remote_addr 2022-03-11 16:42:45 +10:30
gossip_control.h connectd: remove second gossip fd. 2022-02-08 11:15:52 +10:30
hsm_control.c lightningd: support hsm error code 2021-12-15 12:24:54 +10:30
hsm_control.h cleanup: remove unneeded includes in header files. 2021-09-17 09:43:22 +09:30
htlc_end.c global: use tal_dup_or_null(). 2021-12-30 14:36:55 +10:30
htlc_end.h coin_mvt: record fees for an outbound htlc 2021-12-28 04:42:42 +10:30
htlc_set.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
htlc_set.h Makefile: use completely separate spec-derived files for EXPERIMENTAL_FEATURES 2020-09-08 09:42:00 +09:30
invoice.c pytest: add checks that pay and getroute respect htlc_maximum_msat. 2022-03-22 18:45:41 +10:30
invoice.h Makefile: use completely separate spec-derived files for EXPERIMENTAL_FEATURES 2020-09-08 09:42:00 +09:30
io_loop_with_timers.c database: pull out database code into a new module 2022-03-05 15:03:34 +10:30
io_loop_with_timers.h lightningd/io_loop_with_timers.c: Move mainloop to its own source file, have chaintopology use it. 2019-05-31 17:57:10 +02:00
json.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
json.h common: hoist param_bitcoin_address where plugins can use it. 2020-08-11 08:39:24 +09:30
jsonrpc.c database: pull out database code into a new module 2022-03-05 15:03:34 +10:30
jsonrpc.h lightningd: cleanup, freeing jsonrpc in shutdown cannot trigger db write's anymore 2021-11-30 13:34:44 +10:30
lightningd.c lightningd: rename activate_peers() to setup_peers(). 2022-03-23 13:20:12 +10:30
lightningd.h connectd: tell lightningd when disconnect is complete. 2022-03-23 13:20:12 +10:30
log.c db: decouple `fatal` reliance, have as impl defined function 2022-03-05 15:03:34 +10:30
log.h db: decouple `fatal` reliance, have as impl defined function 2022-03-05 15:03:34 +10:30
log_status.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
log_status.h cleanup: remove unneeded includes in header files. 2021-09-17 09:43:22 +09:30
memdump.c memleak: fix double-free if we timeout. 2022-03-23 13:20:12 +10:30
memdump.h lightningd: simplify memleak code. 2022-03-10 09:40:09 +10:30
notification.c coin_mvt: only chain moves have a blockheight 2022-03-05 15:12:12 +10:30
notification.h balance snap: first pass 2021-12-28 04:42:42 +10:30
offer.c database: pull out database code into a new module 2022-03-05 15:03:34 +10:30
onchain_control.c hsmd: Add wallet index metadata to existing messages 2022-03-10 10:22:29 +10:30
onchain_control.h onchaind: remove 'is_replay' logic 2021-12-28 04:42:42 +10:30
onion_message.c connectd: handle onion messages. 2022-02-08 11:15:52 +10:30
onion_message.h common: remove support for pre v0.10.2 onionmessages. 2021-12-01 05:44:28 +10:30
opening_common.c lightningd: don't tell connectd to discard peer unless no subds left. 2022-03-23 13:20:12 +10:30
opening_common.h lightningd: handle reestablish directly from connectd. 2022-03-23 13:20:12 +10:30
opening_control.c lightningd: remove checks which prevent us from opening multiple channels. 2022-03-23 13:20:12 +10:30
opening_control.h connectd: hold peer until we're interested. 2022-03-23 13:20:12 +10:30
options.c chore: fix typo announcable -> announceable 2022-03-11 16:42:45 +10:30
options.h cleanup: remove unneeded includes in header files. 2021-09-17 09:43:22 +09:30
pay.c lightningd: remove (most) functions to search channels by status. 2022-03-23 13:20:12 +10:30
pay.h lightningd: use our cached channel_update for errors instead of asking gossipd. 2022-02-08 11:15:52 +10:30
peer_control.c connect: delay return until all subds ready. 2022-03-23 13:20:12 +10:30
peer_control.h lightningd: use a better channel if available to next hop. 2022-03-23 13:20:12 +10:30
peer_fd.c subdaemons: remove gossipd fd from per-peer daemons. 2022-02-08 11:15:52 +10:30
peer_fd.h subdaemons: remove gossipd fd from per-peer daemons. 2022-02-08 11:15:52 +10:30
peer_htlcs.c lightningd: use a better channel if available to next hop. 2022-03-23 13:20:12 +10:30
peer_htlcs.h lightningd: use our cached channel_update for errors instead of asking gossipd. 2022-02-08 11:15:52 +10:30
ping.c connectd: handle pings and pongs. 2022-02-08 11:15:52 +10:30
plugin.c lightningd: cleanup obsolete plugins->shutdown flag 2021-12-14 09:33:10 +10:30
plugin.h lightningd: cleanup obsolete plugins->shutdown flag 2021-12-14 09:33:10 +10:30
plugin_control.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
plugin_control.h plugins: add `command` field to subcommand output. 2021-06-25 09:49:33 +09:30
plugin_hook.c database: pull out database code into a new module 2022-03-05 15:03:34 +10:30
plugin_hook.h cleanup: remove unneeded includes in header files. 2021-09-17 09:43:22 +09:30
routehint.c lightningd: don't assume a single channel per peer. 2022-03-23 13:20:12 +10:30
routehint.h invoice: overhaul routehints to use topology.listincoming, cleanup. 2021-06-16 10:29:17 +09:30
signmessage.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
subd.c lightningd: simplify memleak code. 2022-03-10 09:40:09 +10:30
subd.h lightningd: simplify memleak code. 2022-03-10 09:40:09 +10:30
watch.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
watch.h common: use bitcoin_outpoint. 2021-10-15 12:09:36 +02:00