From 0e6aec081ac15e74136352b5d8285bdd8bf6af9c Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Wed, 24 Oct 2018 12:11:31 +1030 Subject: [PATCH] gossipd: make sure that freeing peer closes connection to it. Signed-off-by: Rusty Russell --- gossipd/gossipd.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gossipd/gossipd.c b/gossipd/gossipd.c index 009e5a34f..75d402360 100644 --- a/gossipd/gossipd.c +++ b/gossipd/gossipd.c @@ -154,6 +154,10 @@ static void destroy_peer(struct peer *peer) node = get_node(peer->daemon->rstate, &peer->id); if (node) peer_disable_channels(peer->daemon, node); + + /* In case we've been manually freed, close conn (our parent: if + * it is freed, this will be a noop). */ + io_close(peer->remote->conn); } static struct peer *find_peer(struct daemon *daemon, const struct pubkey *id)