gvisor/pkg/tcpip/transport/unix
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
..
BUILD Automated rollback of changelist 207037226 2018-08-02 10:42:48 -07:00
connectioned.go Automated rollback of changelist 207037226 2018-08-02 10:42:48 -07:00
connectioned_state.go Switch netstack licenses to Apache 2.0. 2018-07-09 14:04:40 -07:00
connectionless.go Fix data race in unix.BoundEndpoint.UnidirectionalConnect. 2018-08-08 19:23:48 -07:00
unix.go Fix data race in unix.BoundEndpoint.UnidirectionalConnect. 2018-08-08 19:23:48 -07:00