Index: net/quic/p2p/quic_p2p_session.cc |
diff --git a/net/quic/p2p/quic_p2p_session.cc b/net/quic/p2p/quic_p2p_session.cc |
index bd8f1c3e37e7878e6e78855ef529da48569a05ae..c8cc5819c0c4dfcff736591838dd526e8ce4d6eb 100644 |
--- a/net/quic/p2p/quic_p2p_session.cc |
+++ b/net/quic/p2p/quic_p2p_session.cc |
@@ -67,6 +67,8 @@ QuicP2PStream* QuicP2PSession::CreateOutgoingDynamicStream() { |
void QuicP2PSession::OnConnectionClosed(QuicErrorCode error, bool from_peer) { |
QuicSession::OnConnectionClosed(error, from_peer); |
+ socket_.reset(); |
+ |
if (delegate_) { |
Delegate* delegate = delegate_; |
delegate_ = nullptr; |
@@ -98,6 +100,10 @@ int QuicP2PSession::DoRead() { |
DCHECK_EQ(read_state_, READ_STATE_DO_READ); |
read_state_ = READ_STATE_DO_READ_COMPLETE; |
+ if (!socket_) { |
+ return net::ERR_SOCKET_NOT_CONNECTED; |
+ } |
+ |
return socket_->Read( |
read_buffer_.get(), kMaxPacketSize, |
base::Bind(&QuicP2PSession::DoReadLoop, base::Unretained(this))); |