forked from quic-go/quic-go
Fix a data race in stream.Read
This commit is contained in:
@@ -69,8 +69,11 @@ func newStream(StreamID protocol.StreamID, onData func(), onReset func(protocol.
|
|||||||
|
|
||||||
// Read implements io.Reader. It is not thread safe!
|
// Read implements io.Reader. It is not thread safe!
|
||||||
func (s *stream) Read(p []byte) (int, error) {
|
func (s *stream) Read(p []byte) (int, error) {
|
||||||
|
s.mutex.Lock()
|
||||||
|
err := s.err
|
||||||
|
s.mutex.Unlock()
|
||||||
if s.cancelled.Get() || s.resetLocally.Get() {
|
if s.cancelled.Get() || s.resetLocally.Get() {
|
||||||
return 0, s.err
|
return 0, err
|
||||||
}
|
}
|
||||||
if s.finishedReading.Get() {
|
if s.finishedReading.Get() {
|
||||||
return 0, io.EOF
|
return 0, io.EOF
|
||||||
|
|||||||
Reference in New Issue
Block a user