lightning/connectd
Rusty Russell 37ff013c2c connectd: fix subd tal parents.
This came out in a later patch: freeing the peer->subds doesn't actually
free the subds, because they're reparented onto subd->conn, which is
a child of peer itself.


This breaks because when the peer is finally freed, destroy_subd is
called, and expects to find itself in peer->subds (but we made that
NULL when we manually freed it!).

Fix this, and make it obvious that we tal_steal it.

```
ightning_connectd: FATAL SIGNAL 11 (version v0.11.0.1-25-gbf025aa-modded)
0x55de2a1b8b94 send_backtrace
	common/daemon.c:33
0x55de2a1b8c3e crashdump
	common/daemon.c:46
0x7fe2be2fc08f ???
	/build/glibc-SzIz7B/glibc-2.31/signal/../sysdeps/unix/sysv/linux/x86_64/sigaction.c:0
0x55de2a1af41e destroy_subd
	connectd/multiplex.c:1119
0x55de2a217686 notify
	ccan/ccan/tal/tal.c:240
0x55de2a217b9d del_tree
	ccan/ccan/tal/tal.c:402
0x55de2a217bef del_tree
	ccan/ccan/tal/tal.c:412
0x55de2a217bef del_tree
	ccan/ccan/tal/tal.c:412
0x55de2a217f39 tal_free
	ccan/ccan/tal/tal.c:486
0x55de2a1aa116 peer_discard
	connectd/connectd.c:1834
0x55de2a1aa38d recv_req
	connectd/connectd.c:1903
0x55de2a1b9121 handle_read
	common/daemon_conn.c:31
0x55de2a205a35 next_plan
	ccan/ccan/io/io.c:59
0x55de2a20663d do_plan
	ccan/ccan/io/io.c:407
0x55de2a20667f io_ready
	ccan/ccan/io/io.c:417
0x55de2a208972 io_loop
	ccan/ccan/io/poll.c:453
0x55de2a1aa736 main
	connectd/connectd.c:2042
0x7fe2be2dd082 __libc_start_main
	../csu/libc-start.c:308
0x55de2a1a085d ???
	???:0
0xffffffffffffffff ???
	???:0
```

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2022-07-18 20:50:04 -05:00
..
test update-mocks: handle missing deprecated_apis. 2022-07-09 09:59:52 +09:30
connectd_gossipd_wire.csv gossipd: don't hand out fds. 2022-02-08 11:15:52 +10:30
connectd_wire.csv connectd: remove enable-autotor-v2-mode option 2022-05-18 10:15:36 +09:30
connectd.c connectd: don't insist on ping replies when other traffic is flowing. 2022-07-09 12:27:05 +09:30
connectd.h connectd: optimize requests for "recent" gossip. 2022-07-15 21:18:29 +09:30
gossip_rcvd_filter.c connectd: shrink max filter size. 2022-06-17 14:14:02 +09:30
gossip_rcvd_filter.h channeld: take over gossip_rcvd_filter.c and is_msg_gossip_broadcast. 2022-06-17 14:14:02 +09:30
handshake.c connectd: keep timeout timer around so we can disable it. 2022-01-20 15:24:06 +10:30
handshake.h connectd: keep timeout timer around so we can disable it. 2022-01-20 15:24:06 +10:30
Makefile channeld: take over gossip_rcvd_filter.c and is_msg_gossip_broadcast. 2022-06-17 14:14:02 +09:30
multiplex.c connectd: fix subd tal parents. 2022-07-18 20:50:04 -05:00
multiplex.h connectd: hold peer until we're interested. 2022-03-23 13:20:12 +10:30
netaddress.c bolt7: allow announcement of ADDR_TYPE_DNS 2021-11-30 09:38:17 +10:30
netaddress.h cleanup: remove unneeded includes in header files. 2021-09-17 09:43:22 +09:30
onion_message.c connectd: restore obs2 onion support. 2022-03-29 10:55:12 +10:30
onion_message.h connectd: restore obs2 onion support. 2022-03-29 10:55:12 +10:30
peer_exchange_initmsg.c connectd: don't keep around more than one old connection. 2022-06-28 13:47:27 +09:30
peer_exchange_initmsg.h connectd: keep timeout timer around so we can disable it. 2022-01-20 15:24:06 +10:30
sha1.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
sha1.h lightning_websocketd: simple proxy for websockets. 2021-10-22 11:56:30 +02:00
tor_autoservice.c connectd: remove enable-autotor-v2-mode option 2022-05-18 10:15:36 +09:30
tor_autoservice.h connectd: remove enable-autotor-v2-mode option 2022-05-18 10:15:36 +09:30
tor.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
tor.h connectd: rename 'struct reaching' to 'struct connecting'. 2018-09-28 04:14:28 +00:00
websocketd.c websocketd: fix random failures by blocking stdin reads 2022-03-14 12:26:46 -05:00