mirror of
https://github.com/aljazceru/lightning.git
synced 2026-02-02 20:54:23 +01:00
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>