From: Matt Joiner Date: Thu, 19 Aug 2021 03:35:52 +0000 (+1000) Subject: Fix data race closing incoming PeerConn X-Git-Tag: v1.30.3~4 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=6b03f000931b8fba83fa5cd65307d02fdf783cb1;p=btrtrc.git Fix data race closing incoming PeerConn --- diff --git a/client.go b/client.go index 4815a0cd..fe1a8769 100644 --- a/client.go +++ b/client.go @@ -537,7 +537,11 @@ func (cl *Client) incomingConnection(nc net.Conn) { } c := cl.newConnection(nc, false, nc.RemoteAddr(), nc.RemoteAddr().Network(), regularNetConnPeerConnConnString(nc)) - defer c.close() + defer func() { + cl.lock() + defer cl.unlock() + c.close() + }() c.Discovery = PeerSourceIncoming cl.runReceivedConn(c) }