gvisor/pkg/tcpip/transport
Ian Gudger 2a44362c0b Fix data race in unix.BoundEndpoint.UnidirectionalConnect.
Data race is:

Read:
(*connectionlessEndpoint).UnidirectionalConnect:
writeQueue: e.receiver.(*queueReceiver).readQueue,

Write:
(*connectionlessEndpoint).Close:
e.receiver = nil

The problem is that (*connectionlessEndpoint).UnidirectionalConnect assumed
that baseEndpoint.receiver is immutable which is explicitly not the case.
Fixing this required two changes:
1. Add synchronization around access of baseEndpoint.receiver in
   (*connectionlessEndpoint).UnidirectionalConnect.
2. Check for baseEndpoint.receiver being nil in
   (*connectionlessEndpoint).UnidirectionalConnect.

PiperOrigin-RevId: 207984402
Change-Id: Icddeeb43805e777fa3ef874329fa704891d14181
2018-08-08 19:23:48 -07:00
..
ping Netstack doesn't handle sending after SHUT_WR correctly. 2018-08-07 07:57:20 -07:00
queue Automated rollback of changelist 207037226 2018-08-02 10:42:48 -07:00
tcp Adds support to dump out cubic internal state. 2018-08-07 11:49:57 -07:00
tcpconntrack stateify: support explicit annotation mode; convert refs and stack packages. 2018-07-27 10:17:21 -07:00
udp Netstack doesn't handle sending after SHUT_WR correctly. 2018-08-07 07:57:20 -07:00
unix Fix data race in unix.BoundEndpoint.UnidirectionalConnect. 2018-08-08 19:23:48 -07:00