Index: webrtc/p2p/base/pseudotcp.cc |
diff --git a/webrtc/p2p/base/pseudotcp.cc b/webrtc/p2p/base/pseudotcp.cc |
index ec302d3520423fa7ad1f95971feb950f6e37765d..f87c7a75ac475e90d8dec07257b852be4f1fd444 100644 |
--- a/webrtc/p2p/base/pseudotcp.cc |
+++ b/webrtc/p2p/base/pseudotcp.cc |
@@ -910,10 +910,14 @@ bool PseudoTcp::process(Segment& seg) { |
} else { |
uint32_t nOffset = seg.seq - m_rcv_nxt; |
- rtc::StreamResult result = m_rbuf.WriteOffset(seg.data, seg.len, |
- nOffset, NULL); |
+ rtc::StreamResult result = |
+ m_rbuf.WriteOffset(seg.data, seg.len, nOffset, NULL); |
+ if (result == rtc::SR_BLOCK) { |
+ // Ignore incoming packets outside of the receive window. |
+ return false; |
+ } |
+ |
RTC_DCHECK(result == rtc::SR_SUCCESS); |
- RTC_UNUSED(result); |
if (seg.seq == m_rcv_nxt) { |
m_rbuf.ConsumeWriteBuffer(seg.len); |