Browse Source

Fix double free of message buffer.

Message buffer `why` is allocated in the `peer` context and also freed when peer is freed.
Only explicitly free the buffer when peer itself is not freed yet.
ppa-0.6.1
Björge Dijkstra 7 years ago
committed by Rusty Russell
parent
commit
44836ef509
  1. 6
      lightningd/peer_control.c

6
lightningd/peer_control.c

@ -208,11 +208,11 @@ void peer_fail_permanent(struct peer *peer, const char *fmt, ...)
}
peer_set_owner(peer, NULL);
if (peer_persists(peer))
if (peer_persists(peer)) {
drop_to_chain(peer);
else
tal_free(why);
} else
free_peer(peer, why);
tal_free(why);
}
void peer_internal_error(struct peer *peer, const char *fmt, ...)

Loading…
Cancel
Save