From: Matt Joiner <anacrolix@gmail.com>
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)
 }