From 67c06d9a96a47b370fb82637875a86b440ccdf59 Mon Sep 17 00:00:00 2001 From: Janos Guljas Date: Fri, 12 Apr 2019 10:25:56 +0200 Subject: [PATCH] swarm/network: fix data race in newBzzBaseTesterWithAddrs --- swarm/network/protocol_test.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/swarm/network/protocol_test.go b/swarm/network/protocol_test.go index c65844b97d..286e89ec98 100644 --- a/swarm/network/protocol_test.go +++ b/swarm/network/protocol_test.go @@ -86,9 +86,12 @@ func newBzzBaseTester(n int, prvkey *ecdsa.PrivateKey, spec *protocols.Spec, run func newBzzBaseTesterWithAddrs(prvkey *ecdsa.PrivateKey, addrs [][]byte, spec *protocols.Spec, run func(*BzzPeer) error) (*bzzTester, [][]byte, error) { n := len(addrs) cs := make(map[enode.ID]chan bool) + var csMu sync.Mutex srv := func(p *BzzPeer) error { defer func() { + csMu.Lock() + defer csMu.Unlock() if cs[p.ID()] != nil { close(cs[p.ID()]) } @@ -120,10 +123,12 @@ func newBzzBaseTesterWithAddrs(prvkey *ecdsa.PrivateKey, addrs [][]byte, spec *p } addr := getENRBzzAddr(nod) + csMu.Lock() for _, node := range s.Nodes { log.Warn("node", "node", node) cs[node.ID()] = make(chan bool) } + csMu.Unlock() var nodeAddrs [][]byte pt := &bzzTester{